標籤:
第一章
字串,數字,類和對象
為了證明Ruby真的好用,hello world也能寫的如此簡潔:
puts ‘hello world‘
1.輸入/輸出
print(‘Enter your name‘)name=gets()puts("Hello #{name}")
註:Ruby是區分大小寫的
2.String類
puts("Hello #{name}")中的變數 name是內嵌在整個String裡的,通過 #{ } 包裹進行內嵌求值,並用雙引號""包裹(如果只是單引號‘‘只會返回字面值)。不僅是變數,你甚至可以嵌入"\t""\n"和算數運算式。
puts "Hello #{showname}"puts( "\n\t#{(1+2) * 3}\nGoodbye" )
3.if……then 語句
taxrate = 0.175 print "Enter price (ex tax): "s = getssubtotal = s.to_fif (subtotal < 0.0) then subtotal = 0.0 endtax = subtotal * taxrateputs "Tax on $#{subtotal} is $#{tax}, so grand total is $#{subtotal+tax}"
- 每個if須有end與之對應,而then可選,除非它與if在同一行。
- to_f()方法對值為浮點數的String返回浮點數本身,對於不能轉化者返回 0.0
4.val、$val、@val的區別
val是局部變數,$val是全域變數,@val是執行個體變數
執行個體變數就相當於成員變數
5.如何定義一個class
看兩段代碼
class Dog def set_name( aName ) @myname = aName end def get_name return @myname end def talk return ‘woof!‘ endend
class Treasure def initialize( aName, aDescription ) @name = aName @description = aDescription end def to_s # override default to_s method "The #{@name} Treasure is #{@description}\n" endend
- 成員變數需用@標示
- 無參方法可以不加()
- 每個類要用end結束
- 預設有無參構造器initialize(),也可以重寫帶參數的initialize()
Ruby學習-第一章