Golang之方法(自訂類型,struct)

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

方法的使用,請看本天師的代碼

//Golang的方法定義//Golang中的方法是作用在特定類型的變數上,因此自訂類型,都可以有方法,不僅僅是struct//定義:func (recevier type) methodName(參數列表)(傳回值列表){}//方法和函數的區別/*1,函數調用:function(variable,參數列表)2, 方法,variable.function(參數列表)方法的控制,通過大小寫空格控制 */

。。。。

package main//Golang的方法定義//Golang中的方法是作用在特定類型的變數上,因此自訂類型,都可以有方法,不僅僅是struct//定義:func (recevier type) methodName(參數列表)(傳回值列表){}import "fmt"type integer intfunc (p integer) print() {    fmt.Println("p is:", p)}//這裡傳遞的是副本,想改變p的值,需要傳遞指標func (p *integer) set(b integer) {    *p = b}type Student struct {    Name  string    Age   int    Score int    sex   int}//這裡需要接受指標 *Student(接收者),否則修改不了值func (p *Student) init(name string, age int, score int) {    p.Name = name    p.Age = age    p.Score = score    fmt.Println(p)}func (p Student) get() Student {    return p}func main() {    var stu Student    //修改地址的寫法(&stu).init    //但是go可以自動知道,接受者是指標,這裡stu就傳遞地址    stu.init("stu", 18, 99)    stu1 := stu.get()    fmt.Println(stu1)    //type integer方法    var a integer    a = 100    a.print()    a.set(1000)    a.print()}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.