大家好,我是小K。今天的進度是以下4個習題:
Exercise 18: Names, Variables, Code, Functions
Exercise 19: Functions And Variables
Exercise 20: Functions And Files
Exercise 21: Functions Can Return Something
這四個習題都是在講Function。
首先,Exercise18,主要是練習函式宣告的寫法。
def function_name()
#code here
end
開頭def為Define的縮寫,結尾用end,中間為函式的範圍。
也可以在函式名稱後面的括號裡面加上參數。
def function_name(args)
puts "arg = #{args}"
end
範例練習程式碼:
Exercise19,這一張主要是練習如何透過變數傳遞參數。(應該這樣解釋?)
依照上面練習的程式碼來看,函式的變數,是以認得括號後面的參數為主。比如:
Age = 20
My_age(age)
def my_age(old)
puts "My age is #{old}"
end
my_age函式只認得old這個變數,不認得age,所以要將變數age傳到函式的old裡面,才能正確輸出。
有了這樣的觀念,下面的範例程式碼就不會眼花撩亂了~
ex19.rb的result:
Exercise20,這章的習題將函式結合檔案做練習。
將檔案當成參數,傳到函式裡面。藉由函式執行read、add、print等動作。
比如透過函式讀取檔案:
Filename = ARGV.first
def read_file(f)
f.read
end
read_file(Filename)
這一章還有提到一個file的函數seek。其主要的功用是將指標指定文件中的某個位置。
f.seek(0)
範例練習程式碼:
NOTE:
current_line+=1 等於 current_line = current_line + 1
ex20.rb的result:
Exercise21,這一章主要在講函數的回傳值。
def add(a, b)
return a + b
end
在Ruby世界裡,return這個字是可以省略不寫的。下面這樣的程式碼一樣可以執行。
def add(a, b)
a + b
end
範例練習程式碼:
Code第33行,看起來很複雜,其實還好。只是用呼叫函式的方式後所回傳的結果,當作參數傳到另外一個函式這樣。
ex21.rb的result:
OK~今天的東西比較簡單,那就先這樣囉~明天見。
By 小K