偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為孩子寫一本編程書系列:學(xué)習(xí)函數(shù) 將命令打包

開發(fā) 開發(fā)工具
雖然只是在Playground中將moveFoward()、collectGem()、toggleSwitch()這些簡單的命令進行組合并執(zhí)行,但看得出,在每一次完成一項編程挑戰(zhàn)游戲的過程中,孩子的編程思維也正被逐漸地構(gòu)建起來。而在這一節(jié)里,我們將介紹編程學(xué)習(xí)中另一個重要工具——函數(shù)。

在上一節(jié)中,小Ian已經(jīng)熟悉了使用命令來解決一些簡單的編程挑戰(zhàn)。雖然只是在Playground中將moveFoward()、collectGem()、toggleSwitch()這些簡單的命令進行組合并執(zhí)行,但看得出,在每一次完成一項編程挑戰(zhàn)游戲的過程中,孩子的編程思維也正被逐漸地構(gòu)建起來。而在這一節(jié)里,我們將介紹編程學(xué)習(xí)中另一個重要工具——函數(shù)。

認識函數(shù)

在我們的日常生活中,即使是一個最簡單的任務(wù),也是由由一系列步驟,按照一定的順序組合而成的。比如,我們每天都會做的系鞋帶這個動作,也可以將它分成三個步驟來完成。

每雙鞋都有兩只,因此同樣的過程,我們需要重復(fù)執(zhí)行兩遍。想象一下,如果我們用上一節(jié)學(xué)過的命令方式,去讓計算機完成系鞋帶這個任務(wù)的話,是不是應(yīng)該需要輸入下面這6條命令呢?

但想一想,當(dāng)我們穿鞋時,其實并不是按照這些指令來完成穿鞋這個任務(wù)的。在我們的腦子里只是記住了系鞋帶的步驟,然后每次需要穿鞋系鞋帶時,就將這些步驟從腦袋里拿出來,應(yīng)用到穿每一只鞋子上。那么,同樣的,有沒有一種方法能夠讓計算機記住這些步驟,并在需要的時候去使用它呢?這里,我們就需要用到一個新的工具——函數(shù)。

函數(shù)能夠?qū)⒁唤M命令打包,并給它賦予一個名稱。而這一組命令便可以在需要時通過這個函數(shù)的名字進行調(diào)用。

定義函數(shù)

讓我們?nèi)砸韵敌瑤槔纯慈绾瓮ㄟ^定義函解的方式,讓計算機記住系鞋帶的步驟:

  • 首先我們通過 func 關(guān)鍵字來聲明一個函數(shù)
  • func后面跟著的便是我們給函數(shù)起的名字,上面這個函數(shù)的名字叫做tieMyShoe——系我的鞋帶,和之前提到的命令一樣,我們也在函數(shù)的名稱后面加上一對括號。
  • 我們使用一對 花括號{} 來定義函數(shù)所包含的內(nèi)容,我們也稱它為 函數(shù)體。通過將命令添加到函數(shù)體中,便能給這個函數(shù)添加我們所希望的行為。

調(diào)用函數(shù)

我們定義函數(shù)之后,計算機并不會自動地去執(zhí)行它。而是需要我們明確地告訴計算機在何時何地去調(diào)用它。我們通過函數(shù)名來調(diào)用并執(zhí)行它所打包的那一組命令。這里,我們便通過調(diào)用兩次tieMyShoe()函數(shù),完成給兩只鞋系鞋帶的任務(wù)。

[[185529]]

Tips:理解函數(shù)的定義和調(diào)用之間的關(guān)系非常重要,函數(shù)用來打包命令,但在定義后并不會被直接執(zhí)行,只有在通過函數(shù)的名字調(diào)用它們時,函數(shù)體內(nèi)的命令才會被執(zhí)行。

通過函數(shù)簡化問題解決

函數(shù)是程序員們編程時最常使用的工具,但對于初學(xué)者來說,他們卻往往難以判斷什么時候應(yīng)該使用函數(shù),因為,大部分情況下我們同樣能通過組合命令來解決問題。下面是那些最常見的函數(shù)使用場景,而其中第二點又是這些場景中最常見的:

  • 當(dāng)需要通過組合已有的命令,來創(chuàng)造出新的或更復(fù)雜的行為時
  • 當(dāng)某一行為可能被重復(fù)或多次使用時
  • 當(dāng)某一行為變得太過復(fù)雜時,也會將它分解成多個更小的行為

下面還是讓我們回到Ian最喜歡的Playground中,去看看我們?nèi)绾瓮ㄟ^函數(shù)去解決那些復(fù)雜問題。在這個挑戰(zhàn)游戲中,我們需要幫助Byte抓到全部4顆寶石,并打開4個開關(guān)。

[[185530]]

Ian一眼就看出了這個迷宮的規(guī)律,4個寶石和4個開關(guān),平均分布在迷宮的4條邊上。每一條邊上的寶石和開關(guān)都在相同的位置上。因此,我們只要定義一個函數(shù)去解決一條邊上的寶石和開關(guān),然后重復(fù)調(diào)用四次便可以完成這個編程挑戰(zhàn)了。讓我們?yōu)檫@個函數(shù)起個名字,就叫它resolveRow()吧。

瞧,我們剛剛成功完成了這個編程挑戰(zhàn),比起我們光用命令去實現(xiàn)所需要的27條命令,使用函數(shù)的方式是不是簡明了很多呢?上面的這個編程挑戰(zhàn),并不是Playground中函數(shù)這一小節(jié)的***個編程挑戰(zhàn),但我們在這個挑戰(zhàn)游戲中所運用的方法,卻像極了那些程序員們在日常工作中,解決問題時所普遍采用的思路:

  1. 首先明確任務(wù)的目標:抓到所有寶石、打開所有開關(guān)
  2. 分析問題,盡可能地通過識別模式,將較大的問題分解為一個個小問題:這里的小問題就是解決一條邊上的寶石與開關(guān)。
  3. 為每一個獨立的小問題找到解決方法:通過定義函數(shù)resolveRow()來處理一條邊上的寶石與開關(guān)。
  4. 通過將這些小問題的解決組合起來,解決整個任務(wù)所包含的大問題:通過調(diào)用4次resolveRow()函數(shù),完成挑戰(zhàn)。

Tips:這種解決問題的思路和方法,不僅在編程中普遍應(yīng)用,也同樣適用于幾乎所有學(xué)科和領(lǐng)域。孩子們在學(xué)習(xí)編程的過程中,實際也是在學(xué)習(xí)問題識別、分解和解決的方法,這對他們盡早培養(yǎng)起獨立解決問題的能力非常有幫助

小節(jié)

通過這一節(jié)的學(xué)習(xí),我們認識了編程中的函數(shù),通過定義函數(shù),我們用一個名字來指代一組命令所包含的行為。并在需要時,通過對這個函數(shù)名的調(diào)用,告訴計算機去執(zhí)行這一組命令。另外,我們還學(xué)習(xí)了如何將大問題進行分解,并通過定義和調(diào)用函數(shù)來解決問題的方法,這一方法將始終貫穿于我們?nèi)蘸蟮木幊虒嵺`當(dāng)中。在下一節(jié),我們將會學(xué)習(xí)編程中的一個重要控制邏輯For循環(huán)。

練習(xí)

請大家完成Playground中,F(xiàn)uncations這一節(jié)中的其他編程挑戰(zhàn),它們包括:定義一個新的函數(shù);在函數(shù)中添加命令以創(chuàng)建新的行為;函數(shù)間的嵌套調(diào)用;通過函數(shù)解決復(fù)雜問題等等。完成這些練習(xí)后,你將會對函數(shù)的使用有更深入的理解,這也將是你未來構(gòu)建更強大應(yīng)用的基礎(chǔ)。

【本文是51CTO專欄作者“陳逸鶴”的原創(chuàng)文章,如需轉(zhuǎn)載請聯(lián)系作者本人(微信公眾號:techmask】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2017-03-15 15:43:08

編程書初學(xué)者資源

2017-03-15 15:52:22

學(xué)習(xí)編程教學(xué)

2017-03-15 16:17:20

學(xué)習(xí)命令計算機

2020-07-10 14:04:17

編程開發(fā)

2015-10-09 09:21:01

程序員寫書

2020-04-22 15:22:23

編程開源代碼

2013-07-04 09:42:47

測試軟件測試如何測試軟件

2022-06-06 10:55:51

本地服務(wù)鴻蒙

2020-05-26 21:17:28

函數(shù)式編程純函數(shù)

2020-05-26 16:27:58

函數(shù)孩子編程

2017-01-16 11:09:44

Linux

2016-12-26 14:56:33

戴爾

2016-06-01 16:03:39

emoji圣經(jīng)

2010-09-01 08:58:20

讓喬布

2018-08-03 19:49:00

編程

2018-06-28 11:35:04

Linux開源編程

2018-01-19 15:31:36

戴爾

2012-07-20 09:18:22

黑客

2013-07-08 15:16:25

2009-12-17 13:53:47

點贊
收藏

51CTO技術(shù)棧公眾號