函數的應用


這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。

除了回傳數字之外,其實函數還有很多實用的地方,它不只能用來回傳數字,還能用來回傳其他資料。另外,它也能用來把看起來很複雜的程式,變得簡單易懂!幾個常見的用法如下:


回傳各類資料


經常我們定義一個函數,希望它回傳的不是數字。你可能會問說,數學中的函數不就是用來回傳數字嗎?話是這麼說沒有錯,但是在寫程式時,我們可以不需要被數字限制住,可以回傳很多不同的資料型態。

例如我們可以寫一個函數叫做 isIn ,搜尋某一字串是否在一個陣列裡面,如果有,就回傳 true,反之,則回傳 false

function isIn(list, goal){
    for(item in list){
        if(item == goal){
            return true;
        }
    }
    return false;
}

在此值得注意的是,函數一但回傳了值,剩餘的程式碼便不會再執行。讓我們試著呼叫一下這個函數:

names = ["Sam", "James", "Mandy"];
search = "Jenny";
print(isIn(names, search));

電腦在執行時,藉由 isIn 函數中的 for 迴圈一一看過 list 變數中的每一個項目,如果有項目與變數 goal 相等,便回傳 true,否則則回傳 false。因為 search 變數所代表的「Jenny」並沒有在 names 中出現,因此螢幕上將會印出 false

這個例子證明了程式中的函數不一定要回傳數字,也可以是布林值、字串等各種資料型態。


不回傳值的函數


有時候,函數可以不回傳任何的值,也就是說,有些函數可以不用有 return,但你可能會好奇,函數不就是用來得到數值的嗎?那如果不回傳值,這函數存在的意義是什麼?

假設有一段程式碼,我們會在程式中的不同地方重複用到,像下面這樣:

link1 = "example.com";
link1 = "www." + link1;
link1 = "https://" + link1;
go(link1);
link2 = "good.com";
link2 = "www." + link2;
link2 = "https://" + link2;
go(link2);
link3 = "yes.com";
link3 = "www." + link3;
link3 = "https://" + link3;
go(link3);

我們可以看到,程式在執行時,我們不停執行同樣的內容,差別只在於變數所代表的值不同。在這種狀況下,倘若我們將這段程式改作函數的形式,將會方便很多:

/*宣告函數*/
function run(link){    link = "www." + link;    link = "https://" + link;    go(link);} /*執行函數*/run("example.com"); run("good.com"); run("yes.com");

如此一來,重複的程式只需要寫一次,而且當我們要修改程式時,也只需要在一個地方修改,是不是很方便呢?不回傳值的函數,雖然並不會回傳運算的結果,但是卻能讓程式更加簡單易懂,提升我們寫程式的效率。
上一章節
下一章節
使用者分享的影片來自 YouTube。瞭解更多
+1 
感謝內容貢獻者 此篇文章由 1 位使用者共同編輯而成,並且由學呀的編輯團隊負責維護。點此查看編輯者名單。