`

Rubyで使われる記号の意味(正規表現の複雑な記号は除く)

    博客分类:
  • ROR
阅读更多

 

转载自:http://doc.okkez.net/191/view/symref

 

!  ?  #  %  &  |   +  -  *  /  ^  '   .  ,  <  >  =  ~   $  @  _  { }   [ ]  ( )  "  '  `   \  ;

!

!true

not 演算子。演算子式/not を参照。

3 != 5

「等しくない」比較演算子。演算子式/not を参照。

def xxx!

「!」はメソッド名の一部です。慣用的に、 同名の(! の無い)メソッドに比べてより破壊的な作用をもつメソッド(例: tr と tr!)で使われます。

/xxx/ !~ yyy

正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。

?

?a

リテラル/数値リテラル 。文字の ascii コードの数値。

def xx?

この場合の「?」はメソッド名の一部分です。慣用的に、論理値(true/false、nil) を返すタイプのメソッドを示すために使われます。

xx ? yy : zz

演算子式/条件演算子 。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。

/xxx?/

正規表現の、量指定子(quantifiers)。直前の正規表現の 0 または 1 回の繰り返し。

#

#コメント

字句構造/コメント 。# から行末までがコメントになります。

xxx #=> 実行結果

慣用的に実行結果を示すために使われるコメントの書き方。

#! ruby -Ks

shebang。Rubyの起動/インタプリタ行の解釈 を参照。

"a is #{a}"

リテラル/式展開

  a = 10
  p "a is #{a}"  #=> "a is 10"
Range#each

説明文の中でのみ使われます。Ruby言語の要素ではありません。クラスのインスタンスメソッドであることを 簡単に表示するための表記法です。クラスメソッドは「Range.new」のように「.」でつなぎます。

%

10 % 3

各クラスで定義された「%」演算子。Integerクラスでは「余剰」を意味するメソッド。Integer#% メソッド。

"%04b" % 10

Stringクラスの「%」演算子。String#% メソッド。

%r{/etc/httpd/logs$} や %w[foo bar baz] ・・ %<文字><区切り文字><文字列><区切り文字>

リテラル/%記法 。<区切り文字>には任意の非英数字を用いることができ、 <文字>によって式の意味が異なります。

    p %r{/etc/httpd/logs$} #=> /\/etc\/httpd\/logs$/
    p %w[foo bar baz] #=> ["foo", "bar", "baz"]
%!STRING!

% 記法の一種。リテラル/%記法 。ダブルクォート文字列で %Q!STRING! と同じ。

    p %!nomad! #=> "nomad"
% ruby -e "puts 'Hello'"

コマンドラインへの入力を示す。rubyスクリプト上で入力を行うには `command` や system(command) などと書く

&

xxx & yyy

論理積演算子。または類似の演算を行うメソッド。

    p( 3 & 5 ) #=> 1 ・・ 二進数で 0011 & 0101 #=> 0001
a &= yyy

「&」メソッドの自己代入演算子。

xxx && yyy

「and」演算子。

    p( 3 && 5 ) #=> 5 ・・ 3=>true , 5=>true なので右の値を返す。
def xxx(&yyy) ・・ &がついた引数

メソッド定義のブロック引数。クラス/メソッドの定義/メソッド定義 を参照。

|

3 | 5

論理和演算子または類似のメソッド。二進数で 0011 | 01010 => 0111。

3 || 5

「or」演算子または類似のメソッド。true || true なので左の値を返す。

a ||= xxx

「||」演算子の自己代入演算子。a が nil か false なら a に xxx を代入する、という意味になります。

  a ||= :some
  p a #=> some
  a ||= :sec
  p a #=> some
5.times{|n| p n}

ブロックの引数であることを示す区切り文字。

/xx(xx|xx)/

正規表現の選択

+

2 + 3

たし算。または類似の演算を行うメソッド。

+ 3

正の数を表す、単項演算子+。

/xxx+/

正規表現の、量指定子(quantifiers)。直前の表現の 1 回以上の繰り返し

-

3 - 2

引き算。または類似のメソッド

3 * (-5)

負数を表す、単項演算子-。混乱を避けるため適時()でくくるとよい。

% ruby -w など コマンドラインの入力 -AAA

コマンドラインオプション

*

2 * 3

かけ算。または類似の演算を行うメソッド。

2**3

累乗。または類似の演算を行うメソッド。

def xxx(*yy) ・・ *がついた引数

メソッド呼出の引数展開。メソッド呼び出し(super・ブロック付き・yield)クラス/メソッドの定義/メソッド定義 を参照。

/xx*/

正規表現の、直前の表現の 0 回以上の繰り返し。できるだけ長くマッチしようとする。

/

10 / 3

割り算、または類似のメソッド。

/xxx/

リテラル/正規表現リテラル

'1二三四5'.split(//)

// は空の正規表現を意味する

^

true ^ true

「xor」演算子。排他的論理和。または類似のメソッド。

a ^= true

「^」演算子の自己代入演算子。aの論理値の反転。

    p(a=true);p(a^=true);p(a^=true) #=> true false true
/^xxx/

正規表現で、行頭。文字列の先頭や改行文字の直後の位置にマッチします。

:

:exit等の:のついた識別子

シンボルリテラル。リテラル/シンボル を参照。

Net::HTTP

定数のスコープ演算子。変数と定数/定数 を参照。

::DateTime

定数のスコープ演算子で、トップレベルの定数であることを示す。Object クラスで 定義されている定数(トップレベルの定数と言う)を確実に参照するためには 変数と定数/定数 を参照。

xx ? yy : zz

条件演算子。三項演算子とも呼ばれます。if xx then yy else zz end と同じ意味です。 演算子式/条件演算子 を参照。

if 30>20 : ... など 条件式 式 :

thenの省略形。条件式と式を同一行に書きたいときの表記法。

((<ruby 1.9 feature>))では obsolete になるので使用しないこと。

.

xxx.yyy

オブジェクトのメソッド

Range.new

オブジェクトのメソッドだが、説明文の中では特にクラスのクラスメソッド/モジュールの モジュールメソッドを示すことに使われます。インスタンスメソッドは「Range#each」のように 「#」でつなぎます。

1 .. 20

最大値を含む Range オブジェクトを作る範囲演算子です。全体で範囲式といいます。演算子式/範囲式

1 ... 20

最大値を含まない Range オブジェクトを作る範囲演算子です。 全体で範囲式といいます。演算子式/範囲式

if /^begin/ .. /^end/ など 条件式 式 .. 式

条件式中の範囲式は特別にフリップフロップのように働きます。

    '1234543212345'.each_byte{|n|print( (n==?2)..(n==?4) ? n.chr : '_' )} #=> _234___21234_
    #"2"が出るまではfalse、"2"が出てから"4"が出るまではtrue、"4"から"2"まではfalseを返す。
/xx.xx/

正規表現の任意の一文字。

,

a,b, = [1,2,3] ・・ 代入の左辺の「,」

多重代入。演算子式/多重代入 を参照。

<

3 < 5

「より小さい」比較演算子

3 <= 5

「より小さいか等しい」比較演算子

3 <=> 5) #=> -1

基本的な比較演算子。ほかの比較演算子はこの演算子を元に Comparable モジュールで定義されています。 左が大きければ 1, 等しければ0, 右が大きければ -1 を返すように作ることが期待されています。

3 << 1

シフト演算子。または類似のメソッド。

a <<= 1

「<<」演算子の自己代入演算子。

  a = 3
  a <<= 1
  p a #=> 6
<<EOS または <<-EOS 、<<"EOS" など。

ヒアドキュメントです。リテラル/ヒアドキュメント (行指向文字列リテラル) 。ヒアドキュメントは `<<識別子' を含む行の次の行から `識別子' だけの行の直前までを文字列とする行指向のリテラルです。

class Foo < Super

クラス定義でスーパークラスを指定しています。 クラス/メソッドの定義/クラス定義

class << obj

特異クラス定義。クラス/メソッドの定義/特異クラス定義 を参照。

>

3 > 5

「より大きい」比較演算子

3 >= 5

「より大きいか等しい」比較演算子

3 <=> 3) #=> 0

基本的な比較演算子。ほかの比較演算子はこの演算子を元に Comparable モジュールで定義されています。左が大きければ1, 等しければ0, 右が大きければ -1 を返すように作ることが期待されています。

3 >> 1

シフト演算子。または類似のメソッド。

a >>= 1

「>>」演算子の自己代入演算子。

  a = 3
  a >>= 1
  p a #=> 1
{ 1 => "11" , 3 => "333" }

ハッシュのリテラル

=

a = 12

代入演算子。

xxx.a = 12

代入メソッドの呼び出し。

a == 12

等号演算子。または類似のメソッド。

a === 12

特殊な等号演算子。Object#=== での説明:「このメソッドは case 文での比較に用いられます。 デフォルトは Object#== と同じ働きをしますが、 この挙動はサブクラスで所属性のチェックを実現するため 適宜再定義されます」。たとえば、Range#=== はother が範囲内に含まれている時に真を返します。

a += 12 , a *= 12 , a ||= 12 など・・a 二項演算子 = b

自己代入演算子。演算子式/自己代入 を参照。

  a = 7
  a **= 2
  p a #=> 49
def xx=

この場合の「=」はメソッド名の一部分です。このタイプの名前のメソッドを定義すると、 同時に「=」演算子を定義することになります。

=begin ・・ =end

埋め込みドキュメントです。字句構造/埋め込みドキュメント を参照。

{ 1 => "11" , 3 => "333" }

ハッシュのリテラル

rescue => XXX

例外処理で例外結果を変数 XXX に代入します。

xxx #=> 実行結果

慣用的に実行結果を示すために使われるコメントの書き方。

~

'%04b %04b' % [3, ~ 3]) #=> "0011 1100"

ビット演算の否定。

/xxx/ =~ yyy

正規表現のメソッド =~ 。正規表現と文字列をマッチさせる。両辺を入れ替えても機能します。

/xxx/ !~ yyy

正規表現のメソッド =~ の否定。マッチが失敗したらtrueを返します。

~ /xxx/

/xxx/ =~ $_ の省略形。~の後ろは正規表現でなければいけません。

$

$xxx

グローバル変数。変数と定数/グローバル変数 を参照。

$_ や $! など ・・$<1文字の数字、記号>

[[unknown:特殊変数(組み込み変数)|URL:http://www.ruby-lang.org/ja/man/?cmd=view;name=%C1%C8%A4%DF%B9%FE%A4%DF%CA%D1%BF%F4]]

/xx$/

正規表現で行末。文字列の末尾や改行文字の直前の位置にマッチします。改行自身は含みません。 正規表現 を参照。

@

@xxx

インスタンス変数。変数と定数/インスタンス変数 を参照。

@@xxx

クラス変数。変数と定数/クラス変数 を参照。

def +@ または def -@

単項演算子 +X や -X を再定義するときの表記法。

  class String
    def +@
      self.upcase
    end
  end

  puts(+"joke") #=> JOKE

_

xxx_yyy

識別子の中では小文字と同じ扱い

123_456

文字コード以外の数値リテラルには、`_' を含めることができます。 ruby インタプリタは `_' を単に無視し、 特別な解釈は何もしません。 これは、大きな数値の桁数がひと目でわかるように記述するのに便利です。 リテラル/数値リテラル を参照。

{

}

{ 1 => "11" , 3 => "333" }

ハッシュのリテラル

5.times{|n| p n}

ブロック

/xx{2,3}/

正規表現の、範囲指定繰り返し制御(interval quantifier)。

"a is #{a}"

式展開。リテラル/式展開 を参照。

  a = 10
  p "a is #{a}"  #=> "a is 10"

[

]

[1,"some",:ok]

配列のリテラル

'abcde'[1,2]

[]メソッドの実行

  class String
    def [](*a)
      '(^^;'
    end
  end
  p( 'abcde'[1,2] )  #=> "(^^;"
/xx[abc]/

正規表現の文字クラス指定。

Range.new(first,last[, exclude_end])

説明文の中で、省略可能であることを示す表記法(Ruby言語の要素ではない)。

(

)

(true and false)

丸カッコ()は厳密には、複数の文、式をまとめてひとつの式にするグループ化の()(例の内側のカッコ)とメソッドの引数を明示する()(例の外側のカッ コ)があります。例のような特別な場合を除き、普段は使い分けを意識する必要はありません。()は意味が不明瞭にならない範囲で省略が可能です。

"

"abc"

文字列リテラル。式展開などが可能なタイプの文字列リテラルです。 リテラル/文字列リテラル を参照。

'

'abc'

文字列リテラル。最低限のエスケープだけしかしません。式展開などをしたい場合はかわりに""を用います。

`

`ls`

コマンド出力。バッククォート(`)で囲まれた文字列は、コマンドとして実行され、 その標準出力が文字列として与えられます。リテラル/コマンド出力 を参照。

    puts `ruby -h`
    #=> Usage: ruby [switches] [--] [programfile] [arguments]
    #=> ....

\

バックスラッシュ。環境によって¥に見えたりします。

puts "abc\"def" #=> abc"def

文字列や正規表現の中のエスケープ。

xxx \

継続行。改行の直前に置かれる。パースの段階で直後の改行が存在しないものとして扱われます。

    puts(3 \
    + 4) #=> 7

;

a = 3 ;

式の区切り。改行と同じ

分享到:
评论

相关推荐

    qiita_trend:Qiitaのトレンドをたったの10秒で取得できる宝石

    过去のトレンドを取得することができます(あくまでもキャッシュファイルから复元するためキャッシュファイルの无い过去のトレンドは取得することができません) 现在时刻のいいね数が欲しい场合はキャシュファイル...

    2021年中国オープンソース年度報告1

    《2021年中国オープンソース年度報告》は、中国におけるオープンソース技術の動向や市場環境に関する詳細な分析を提供する報告書です。報告書は、開発者や企業がオープンソース技術を取り入れる背景、利用状況、そし...

    SNStyping:SNS(今はMastodonのみ)の発言内容を天气输入に読み込ませるライブラリ

    初期のスクリプトでは,投稿内容をひらがなに変换するため,形态素解析システムのMecabまたはJuman ++のいずれかを使います。初期设定はMecabです。 MacOSの场合,酿造がスンーれば,以下の以下インストールです。...

    pstdn:ポストドン。スクリプト経由でmastodonに文字列トゥートできます(るび〜处女作)

    及び例外を一切考虑していない雑な设计のため不具合合が绝対出かその时は发行かに报告してくださいただしこれもやる気次第なのでやらないかもしれない。ごめんね 必须gem http API叩くのに使ってます。Macであれば...

    FunCobal:「FunCobal」:プロトタイプベースオブジェクト指向と关数型のバランスしたマルチパラダイム言语

    FanCoBal第一世代前文-前言言の言语は,外観はシンプルであり,かつそれでいて装饰は复雑である。 Rubyを超える楽しさ,C言语の速度,MATRABやMathematicaのような数式になじんだ记述,JuliaやHaskell,八度のよう...

    Date_me:デートセッティングアプリです

    実家に帰った时にすごく喜んでくれたり,実家から家に戻った后もメールで「会えて幸せだったよ」などと言葉や行动で表现してくれる家族を见て,私もすごく幸せな気持ちになりました。と同时に,「幸せ」とか「嬉しい...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    ywtdiary:ywtを书く日记

    ※ywtは,アジャイル开発でよく使われるふりかえりツールです。 ※タグクラウド,ラベルの付与は开発中です。 スクリーンショット 开発状况 を见てください。 对于开发人员 开発サーバの立ち上げ docker-compose up...

    study_record

    亀原の勉强日记です自分に対する注意usのリポジトリにPusuするとSlackのTimesに通知が飞んでいってしまってうるさくなってしまうので,作业の区切りや1日の终わり等にまとめてPushするようにするGit及びGitHubで何回...

    ConsoleTooter-Ruby:Mastodon客户端

    ConsoleTooter-Ruby ... 重击ドがーミナルがSixelに対応していにの判定に使われているコードが/bin/shがbashじゃないと正常に动作しないため。/ /bin/shがbashじゃない场合は判定が常にTrueになり

    Attendance-Tutorial:勤闲システムの开発実践チュートリアル

    4. **Git**: Gitは、分散型のバージョンコントロールシステムで、複数人の開発者が共同でプロジェクトを管理するために使われます。Gitを使うことで、コードの変更履歴を追踪し、異なるバージョンの切り替え、コード...

    sample_app:Ruby Rail示例

    Ruby on Railsチュートリアルのサンプルアプリケーション,次の教材で作られたサンプルアプリケーションです(第6版) 着ライセンスドは内にあるソースコードはMITライセンスとBeerwareライセンスのもとで公开されて...

    rails_tutorial_sample_app:Ruby on Railsチュートリアルに沿って作成したサンプルアプリケーションです

    ドは内にあるソースコードはMITライセンスとBeerwareライセンスのもとで公开されています。详细はをご覧ください。 使い方 后の后,次のコマンドで必要になるRubyGemsをインストールします。このア,リケーションシ...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    移动应用

    シフトの作成成时に毎回毎回その日にシフトに入れる人を确认しながら,名前を打ち込む作业は效率が悪く,そのにシのにシフトに入に人が一覧で并んでいて,それをドラッグ&ドロップで入プでばだいぶ楽になるのではな...

    Ruby-TensorStream用Ruby重新实现TensorFlow

    **Ruby-TensorStream:用Ruby重现实现TensorFlow** Ruby-TensorStream是一个开源项目,旨在为Ruby开发者提供一个类似于Google TensorFlow的深度学习框架。它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能...

    cospul

    ユーザー登录なしであらゆる衣装のサンプルをタグ検索等で见る事が出来,ユーザー登录すると投稿はもちろん,楽天市场商品検索apiを使い,商品サイトへのリンクを贴る事が出来,いいね机能を使いお気に入りをまとめ...

    我的衣橱

    サイトテーマ洋服好きの女性のための管理サイトイトにおすすめの服を掲载することでいい服に巡り会えるテーマを选んだ理由私は,洋服のデザインが気に入りお店で买って帰り,家で着てみると合わせる服がなくてがなく...

    coderdojo.jp:由Ruby on Rails开发的:yin_yang:CoderDojo Japan(@ coderdojo-japan)官方网站。 :gem_stone:

    日本CoderDojo一般社団...)必要なもの:ブラウザ+ coderdojo.jpアカウント新机能の开発やデザインの改善( )必要なもの:各种开発环境のセットアップ(开発者向け)新机能の开発やデザインの改善には开発环境が必要で

    Ruby简介:プロを目指す人のためのRuby入门の练习です

    Ruby简介:プロを目指す人のためのRuby入门の练习です

Global site tag (gtag.js) - Google Analytics