Golang基礎 08 方法method

2021-08-20 12:26:07 字數 1759 閱讀 5427

型別別名和方法

method value與method expression

方法名稱衝突與字段訪問許可權

tips

type a struct 

type b struct

func main()

a.print()

b := b{}

b.print()

}func (a a) print()

func (b b) print()

//就像過載一樣,但是不是(a a)(b b)就是receiver

/*> output:

command-line-argumentsab

*/

func

(a a) print

()func

(a a) print

(b int)

type a struct 

type b struct

func main()

a.print()

fmt.println(a.name)

b := b{}

b.print()

fmt.println(b.name)

}//指標傳遞

func (a *a) print()

//值傳遞

func (b b) print()

/*> output:

command-line-argumentsaaa

b《空格》

> elapsed: 6.294s

*/

type tz int

func main()

func (a *tz) print()

/*> output:

command-line-arguments

tz*/

//method value

a.print()

//method expression

(*tz).print(&a)

二者輸出結果一樣

- 如果外部結構和嵌入結構存在同名方法,則優先呼叫外部結構的方法

type a struct

func main()

a.print()

fmt.println(a.name)

}func (a *a) print()

/*> output:

command-line-arguments

123123

*/

例子

type a int

func (a *a) increase()

func (a *a)increase2(num a)

func main()

/*> output:

command-line-arguments

100200

*/

方法:func (a a) add(num int) int {}

函式:func add(num1 int,num2 int) int {}

方法和函式的區別,方法在func關鍵字後是接收者而不是函式名,接收者可以是自己定義的乙個型別,這個型別可以是struct,inte***ce,甚至我們可以重定義基本資料型別。

08 方法詳解

修飾符 返回值型別 方法名 引數列表 修飾符 public static 固定寫法,目前這樣寫,後續學習其它修飾符 返回值型別 表示方法執行的結果的資料型別,方法執行後將結果返回到呼叫者 引數列表 方法在運算過程中的未知資料,呼叫者呼叫方法時傳遞 return 將方法執行後的結果帶給呼叫者,方法執行...

基礎鞏固08 方法引數的傳遞機制 值傳遞

class transfertest1 public static void main string args class dataswap class transfertest2 由下面的方法可以聯想到 平時在專案中的物件的傳遞,然後根據業務對物件的屬性進行更改,不正是這種方法的體現嗎 中的傳遞方...

Java基礎》5 方法

僅供自己記錄學習,無它用,歡迎指導!定義乙個方法的格式 public static void 方法名稱 方法名稱的命名規則和變數一樣,使用小駝峰。方法體 也就是大括號當中可以包含任意條語句。注意事項 1.方法定義的先後順序無所謂。2.方法的定義不能產生巢狀包含關係。3.方法定義好了之後,不會執行的,...