Go 语言 中除了可以为 结构体 添加方法,还可以为任意 类型 使用 type 定义别名,之后,就可以为别名添加方法。
type MyString string
func (m MyString)IsLargeString()bool{
if len(m) > 10{
return true
}
return false
}
我们为内置类型 string 定义了一个别名 MyString,接着,为自定义类型 MyString 添加方法 IsLargeString,该方法返回 bool 类型。
在该方法里,我们判断字符串的长度,如果长度大于 10,那么返回 true,否则,返回 false。
为内置类型 string 添加方法
package main
import (
"fmt"
)
//为内置类型 string 添加方法
type MyString string
func (m MyString)IsLargeString()bool{
if len(m) > 10{
return true
}
return false
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
var myString MyString = "Hello HaiCoder"
fmt.Println("myString = ", myString.IsLargeString())
myString = "HaiCoder"
fmt.Println("myString = ", myString.IsLargeString())
}
程序运行后,控制台输出如下:
首先,我们使用 type 关键字为内置类型 string 定义了一个别名 MyString,接着,为 MyString 添加了一个方法 IsLargeString。
在方法 IsLargeString 里面判断,如果其长度大于 10,那么返回 true,否则,返回 false。接着,在 main 函数里面,我们定义一个 MyString 类型的 变量,并调用其方法 IsLargeString。
为内置类型 int 添加方法
package main
import (
"fmt"
)
//为内置类型 int 类型添加方法
type MyInt int
func (m MyInt)IntAbs()MyInt{
if m >= 0{
return m
}
return -m
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
var myInt MyInt = 10
fmt.Println("IntAbs =", myInt.IntAbs())
myInt = -10
fmt.Println("IntAbs =", myInt.IntAbs())
}
程序运行后,控制台输出如下:
首先,我们使用 type 关键字为内置类型 int 定义了一个别名 MyInt,接着,为 MyInt 添加了一个方法 IntAbs。
方法 IntAbs 返回 int 类型变量的绝对值,接着,我们在 main 函数里面调用 IntAbs 方法。
Go 语言中除了可以为结构体添加方法,还可以为任意类型使用 type 定义别名,之后,就可以为别名添加方法。为任意类型添加方法语法:
type MyString string
func (m MyString)IsLargeString()bool{
if len(m) > 10{
return true
}
return false
}