跳到主要內容

Go 語言學習之路(二)

1.函式

範例程式碼

package main

import "fmt"

func add(x int, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}

函數可以沒有參數或接受多個參數。
在這個例子中," add " 接受兩個 int 類型的參數。
注意類型在變數之後。
return 代表傳回的數值為何,這裡表示傳回 x + y 也就是 42+13 ,所以結果會是 55。
詳細的語法定義可以參考官方文件

當兩個或多個連續的函數命名參數是同一類型,則除了最後一個類型之外,其他都可以省略。
舉例來說
x int, y int
可以被縮寫為
x, y int
也就是說上面的範例程式碼可以改成
package main

import "fmt"

func add(x, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}
 兩種方法的輸出結果都會是相同的。

輸出結果

55
-----------------------------------------------------------------------------------------------------------------------
2.多數值的返回
範例程式碼
package main

import "fmt"

func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    a, b := swap("hello", "world")
    fmt.Println(a, b)
}
函數可以返回任意數量的返回值。
這個函數返回了兩個字串。


輸出結果
world hello
-----------------------------------------------------------------------------------------------------------------------
3.命名返回值

範例程式碼
package main

import "fmt"

func split(sum int) (x, y int) {
    x = sum * 4 / 9
    y = sum - x
    return
}

func main() {
    fmt.Println(split(17))
}
在 Go 中,函數可以返回多個「結果參數」,而不僅僅是一個值。它們可以像變數那樣命名和使用。
如果命名了返回值參數,一個沒有參數的 return 語句,會將當前的值作為返回值返回。

以這個程式碼為例,sum int 表示宣告整數 sum ,將參數 17 放入 sum 中,x, y int 宣告整數 x,y 在下面使用,由於 return 沒有設定返回值,這邊程式就將 x,y 都回傳了,所以結果會出現 7 10。

輸出結果
7 10
-----------------------------------------------------------------------------------------------------------------------
:= 的用法,在後面會有較詳細的說明。
-----------------------------------------------------------------------------------------------------------------------
此為個人學習 Go 語言的過程記錄僅供參考,如有錯誤歡迎回報討論。
部分語句引用官方的說明。
部分用字遣詞可能會與他人理解有出入,歡迎討論。 
By  You-Ruei Tzeng

留言

這個網誌中的熱門文章

從 Aptana Studio 3 開始開發 Python

Aptana Studio 3 載點 請戳我 從這裡開始介紹  Standalone Version 版本的 Python 開發環境安裝法 如果使用 Eclipse Plug-in Version 這裡不提供 步驟一    安裝 Python 程式語言 載點 請戳我 這裡有 Python 2 跟 Python 3 請自行選擇安裝的版本 新舊版的語法格式有差  這裡介紹 Python 3 的安裝方法   我在這裡選擇用 Python 3.2.3 版 64 位元的版本  這裡選擇讓哪些使用者可以使用 Python Install for all users  所有使用者可以使用 Install just for me    只有自己可以使用  選擇安裝目錄 預設是在 C:\Python32\    *數字代表版本號  不同版本會不同  這裡可以選擇各種關方額外提供的工具 可以自由選擇 我在這裡不改變(全部安裝)  耐心的等待他跑完吧  不會太久 點選 Finish 完成安裝  耶~ Python 裝完了 ----------------------------------------------------------------------------------------------------------------------------- 使用官方的工具開發  <----不想看可以往下跳到 Aptana Studio 3 的開發環境設置     IDLE 為官方提供的 GUI (圖形化介面) 程式 Module Docs 一些腳本的說明 Python (command line) 命令列式的程式 Python Manuals 給學習者的教學文件 Uninstall Python 移除 Python  在這裡啟動IDLE 你在這裡可以簡易的使用 Python 的功能 你可以試試輸入 a=...

Linux 桌面環境

當我們啟動電腦進入作業系統後,首先映入眼簾的是啟動畫面,接著會來到登入管理畫面,請用戶輸入帳號密碼,驗證無誤後便會登入你的桌面環境。 為什麼要稱作桌面環境呢?因為起先電腦的使用環境即是仿效日常工作時所用的「桌面」,桌面上可以擺放常用或想處理的東西,像是常用的程式、想工作的文件等。為了方便工作,也設計了可以隨時切換程式的工作列。另外還有通知系統狀態,或是程式狀態的系統匣,程式們會縮成小圖示擺放其中,平時隱藏起來,等候使用者有空時點按取得訊息或處理。 桌面環境除了具備基本的視窗管理功能、基本介面操作之外,還提供各種易用程式方便使用者工作,例如檔案瀏覽器、文字處理器、圖片檢視器、音樂播放器、網頁瀏覽器、郵件閱讀器、行事曆... 等,幾乎已可應付日常生活之用。 但近來桌面環境的典範已開始移轉,各家桌面環境的設計者與開發者大多重新思索桌面環境的未來,試圖重新定義桌面環境的使用體驗。當然,有人思想前衛,也有人想維持穩定,還有人試著在兩者之間取得平衡。 GNOME GNOME 全名 GNU Network Object Model Environment,GNU 網路物件模型環境。GNOME 3 的設計相當新穎,頗有向平板靠攏的意味,但在一般電腦上使用仍又不失易用性與可用性。 GNOME 3 的設計大量參考各種常見的使用介面,因此能從中學習經典與精良之處,並開創出自己的路來。GNOME 3 以專注眼前不干擾工作、輕鬆概覽系統發生的大小事為理念,設計出獨具的 GNOME Shell 操作方式。平時畫面上方有一道橫列,正中央是目前的日期時間,點按下去可以看到最近的行事曆,而行事曆和 GNOME 中 evolution 程式的行事曆相整合,最右方是各式常駐程式圖示,像是輸入法、無障礙輔助科技、音量、藍牙、網路、使用者選單等,方便使用者更動相關設定。此外,所有與通知相關的功能皆整合在畫面右下方的熱角中,像是 empathy 即時通訊程式中從其他人傳來的訊息、可卸除裝置的插入提示、Rythmbox 的播放提示等,平時隱藏起來,只在事件發生時才彈出提示一段時間,若之後想再觀看訊息,只要讓滑鼠游標向右下方的熱角撞擊,就能快速一覽系統通知。 使用者選單也與 GNOME 中的 empathy 即時通訊程式相整合,可以設定是否上線;而也可設定是否彈出顯示 GNOME 的任...

資訊時代與你我

我們都說這是個資訊爆炸的時代,無處不充滿資訊。想想現代人一天的生活中會有多少資訊試著從你的五官擠入腦中呢?鬧鐘旋律作響,提示著你該起床的時間;機車儀表板提示你時速與油量;早餐店的看板告訴你販賣的食物與價格;手機裡存著好多人的相關資料、簡訊,甚至可以上網瀏覽網頁、翻 Facebook、逛各式線上商店;路上無所不在的廣告、廣播向你訴說他的故事;電腦世界中的資訊更無法計數,舉凡各式軟體都提供資訊,更不用說網路了,那幾乎是海量的資訊,隨時會把你淹沒!維基百科、Google、Facebook... 等,幾乎已是我們生活中的一部分,不論你有意或無意,每天都有資訊浪潮不斷向你襲來。 回頭望,無論是社交、購物、學習、分享、工作、遊戲、娛樂... 等,都充滿資訊。 當我們的生活浸潤在大量資訊中,該如何過濾、善用身邊的資訊儼然成為資訊時代下的新挑戰,因為資訊無所不在,有好有壞、有真有假,只要一不小心,我們可能就栽入資訊的陷阱中,讓自己無法逃脫,抑或是被狡詐的資訊所騙,身陷囹圄而不自知。 資訊時代下,連我們自己本身都已經被資訊化,要代表一個人,通常只要有下列資訊即可: 真名、身份證字號、住址、電話、電子信箱位址。 只要能收集到這些資料,那麼就能在資訊社會中偽裝成這個人,因此這幾項資訊若要提供給其他人,必得戒慎恐懼,不要輕易給出,只有在確認對方是安全、合法、無惡意、受信任的狀態下才給予。網路上越來越多詐騙行為,不是偽裝成合法公司,就是入侵你朋友的帳號跟你騙取個人資料。 要記住,沒聽過的廠商與公司,需要你去詢問與查證;有名望的公司,要仔細確認網址不是偽造的,最好不要從廣告連結點入,或者是自行輸入前往,因為後兩者都有可能不小心就連到假冒的,或是打錯網址還可以進去的站點,可能是惡意人士設下的陷阱,反過來透過 Google 或 Yahoo 等知名搜尋引擎所查詢到的網址比較有保障;朋友若向你詢問電話或是請你代收簡訊時也要當心,務必確認對方真是你朋友才為之,或者是請對方隔天當面跟你談更有保障,不要隨意就將個人資訊送出而被利用不自知。 目前臺灣上比較知名的網站為 Yahoo、PChome、露天拍賣、Lativ 米格國際、EYESCREAM、博客來網路書店、TAAZE 讀冊生活、天瓏資訊圖書、Facebook、Google、MSN、Windows Live... 等。而國外知名的有...