Ruby程式員的Golang之旅02

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Golang的函數 @ Ruby的方法

不得不說在Ruby裡面定義一個方法實在是過於簡單,以至於在學習其他語言的時候會被各種類型限制所困擾
ruby定義一個方法

def hello  "hello!"end

參數

def plus x, y  x + yend plus 1,2=> 3

在沒有return關鍵字的時候,會預設返回最後一行,如果方法內沒有任何東西,會返回nil

預設參數,當方法被調用的時候沒有傳參數的時候,不會因為沒有參數而報錯

def plus x=1, y=2  x + yendplus=> 3

多值返回

def plus x,y  return y,xenda,b = plus(1, 2)=> [2,1]a=> 2b => 1

在Ruby裡面定義方法,總之就是舒服,不需要考慮參數的類型和傳回值的類型

但是在Go裡面就沒有這麼自由了

package mainimport "fmt"func plus(x int, y int) int {    return x + y}func main() {    fmt.Println(add(1, 2))}

你必須指定好,你的每一個參數是什麼類型的,返回的值是什麼類型的,上面plus方法中,接受兩個參數x和y,他們都是int類型的,並且函數最終會返回一個int類型的結果,如果你傳了一個其他類型的參數進去,或者你的方法沒有最終沒有返回規定的類型,編譯的時候都會報錯

plus函數的兩個參數都是整數型,因此也可以這樣寫

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

多值返回的時候,也需要為每一個返回的值規定好類型

package mainimport "fmt"func swap(x, y string) (string, string) {    return y, x}func main() {    a, b := swap("hello", "world")    fmt.Println(a, b)}

命名傳回值

package mainimport "fmt"func split(sum int) (x, y int) {    x = sum * 4 / 9    y = sum - x    return}func main() {    fmt.Println(split(17))}

Go 的傳回值可以被命名,並且像變數那樣使用。

沒有參數的 return 語句返回結果的當前值。也就是直接返回。

直接返回語句僅應當用在像下面這樣的短函數中。在長的函數中它們會影響代碼的可讀性。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.