iT邦幫忙

DAY 7
1

Ruby on Rails 30天學習筆記系列 第 7

Ruby on Rails 30天學習筆記之7-Functions

大家好,我是小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


上一篇
Ruby on Rails 30天學習筆記之6-Files
下一篇
Ruby on Rails 30天學習筆記之8-Review
系列文
Ruby on Rails 30天學習筆記8

尚未有邦友留言

立即登入留言