GO語言 String 方法的思考

2021-09-20 02:59:52 字數 793 閱讀 2193

對於定於了string()方法的型別,預設輸出的時候會呼叫該方法,實現字串的列印。例如下面**:

package main

import "fmt"

type man struct

func (m man) string() string

func main()

輸出:my name is :sns

然而,如果使用func (m *man) string() string方式定義函式,那麼就不會自動呼叫該函式輸出(go version go1.12.1 windows/amd64)。

package main

import "fmt"

type man struct

func (m *man) string() string

func main()

輸出:

為什麼使用指標方式定義string()方法就不行了?

我的思考是,如果傳入的是指標型別,那麼string方法可能修改原來的資料,go語言會認為此時的string()方法並不一定是單純的輸出字串,因此如果再自動呼叫該方法就不合適了。而使用傳值方式,資料不會進行改變,因此可以自動呼叫該方法。這種機制使得程式語言更加安全、可靠。

宣告:nansheng.su 發表於 2019-04-28 10:06:00 ,共計200字。

go語言 string() 方法的思考 | www.sunansheng.com

go的string正則匹配 go語言正規表示式

我們前兩節課爬取珍愛網的時候,用到了很多正規表示式去匹配城市列表 城市 使用者資訊,其實除了正規表示式去匹配,還可以利用goquery和xpath第三方庫匹配有用資訊。而我利用了更優雅的正規表示式匹配。下來大概介紹下正規表示式。比如我們匹配城市列表的時候,會取匹配所有城市的url,如下 0 9a z...

go語言 slice和string的聯絡

str hello atguigu 使用切片獲取到 atguigu slice str 6 fmt.println slice slice 如果需要修改字串,可以看下面 使用型別轉換 將string轉換為byte切片 修改字串後 再講byte切片轉換為string arr1 byte str arr...

Go語言的方法

目錄 方法概述 巢狀結構體中的方法呼叫 方法變數 方法表示式 封裝 儘管go沒有統一的物件導向程式設計 oop 的定義,但依然支援方法 c 中常叫做成員函式 因為對我們來說,物件就是乙個值或變數,並且擁有其方法,而方法是某種特定型別的函式。oop就是使用方法來描述每個資料結構的屬性和操作。go語言的...