更多函數的應用
 課程目錄
 編輯章節
 EDU-MD
 Google 教室
 加至書籤

函數的應用

這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 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");

如此一來,重複的程式只需要寫一次,而且當我們要修改程式時,也只需要在一個地方修改,是不是很方便呢?不回傳值的函數,雖然並不會回傳運算的結果,但是卻能讓程式更加簡單易懂,提升我們寫程式的效率。

 均一平台
 台達磨課師
 酷課雲
 可汗學院
無相關資源
 收起側邊目錄
 
前往目錄頁面