Ruby始めてます2

基本的な文法でへ~って思ったところとか

 

リテラル

プログラムの中に直接記述した文字列のことを文字列リテラルという
プログラムの中に直接記述した数値のことを数値リテラルという
 
 
文字列をあたらしく作る時、
String.new("hage")
と書く
この時
・Stringがレシーバー
・newがメッセージ
・プログラムがセンダー
となる
 
表示したい文字列が決まっている場合→文字列リテラルが便利
表示したい文字列がプログラム内で作成される場合→String.newが便利
 
ローカル変数の宣言
小文字、または_から始まる名前
 
ところで
str1 ="hoge"
str2 = 'hage'
もしこれを
str1 = str2
としたらどうなると思う?
 
普通にstr1がhageになった
" "と' 'で区別はないらしい
ウソでした!ありました!
" "は制御文字(\nのようなもの)を意味する通りに使う(\nならば改行)。式展開(?)とバックスラッシュ記法を扱える。
' 'は\'(シングルクオートを表す)と\\(バックスラッシュそのものを表す)以外はその文字のまま解釈される 
 
putsやprintはクラスの指定なく使えるメソッド
こういうのを組み込みメソッド(詳しくはググって)という
 
chop 最後に読み込んだ文字列の最後の文字を取り除く
chop! の方が使いそうだなという印象
(破壊的メソッド)
 
sleep(sec)
sec秒だけプログラムの停止
Arduinoで言うdelay()と同じ
 
p(obj) オブジェクトのデバックに使われる
 
print "hoge
hage
"
こんな書き方しても怒られないの初めて見た
しかもこれで
print "hoge\nhage\n"と同じいみになるらしい
直感的な文字の入力ができる
 
print CLEAR
でターミナルでのctrl+lに相当した事ができる
 
文字列の足し算
puts "hoge " + "hage" 
hoge hage
 
文字列を追加
hoge.concat("hage")
hoge << "hage"
 
0x 16進数
0 8進数
0b 2進数
 
1.234e20
1.234の10の20乗を表す
 
printfとsprintfはCのsprintfにおける書式化文字列もとに作成されてて
%[引数指定$][フラグ][幅][.精度]指示子
 
a = 123
print "a = ", a , "\n"
print "a = #{a} \n"
は同じ
 
日付データを使いたい
require 'date'
日にちが知りたい
→ day = date.today
 
新しい日付オブジェクト
name = Date.new(yyyy,mm,dd)
 
print name
しても
print Date.new(yyyy, mm, dd).to_s
しても同じ結果が出る
 
array[[hoge,hage],[test,test],[uoo,waa]]
hageが欲しかったら
array[0][1]
 
puts array.index("hage")
# nil
 
Rubyの配列は型が違っても入れられる
intとかStringとか入れられる
array = [123, "woo"]
こんなのもOK
 
 
初歩的な文法とか覚えた覚えたとか思ってたけどきのせいでしたね・・・
printの" "内で改行されたものがそのまま改行されたのが一番へーってなった12へーくらい
あとconcatがなんか好き