作者:AlbertWen
添加时间:2017-10-29 09:18:25
修改时间:2025-11-18 05:02:20
分类:
21.Golang编程
编辑
一、定义
方法 是与对象实例绑定的特殊函数。
方法 是面向对象编程的基本概念,用于维护和展示对象的自身状态。对象是内敛的,每个实例都有各自不同的独立特征,以 属性 和 方法 来暴露对外通信接口。普通函数则专注于算法流程,通过接收参数来完成特定逻辑运算,并返回最终结果。换句话说,方法是有关联状态的,而函数通常没有。
方法 和 函数 定义语法区别的在于前者有 前置实例 接收参数(receiver),编译器以此确定方法所属类型。在某些语言里,尽管没有显示定义,但会在调用时隐式传递 this 实例参数。
可以为 当前包,以及除 接口 和 指针 以外的任何类型定义方法。
type N int
func (n N) toString() string {
return fmt.Sprintf("%#x", n)
}
func main() {
var a N = 5
println(a.toString())
}
输出:
0x19
作者:AlbertWen
添加时间:2017-10-29 20:50:23
修改时间:2025-12-12 22:41:31
分类:
21.Golang编程
编辑
摘录一:
Go 1.3 的 sync 包中加入一个新特性:Pool。
官方文档可以看这里 http://golang.org/pkg/sync/#Pool
这个类设计的目的是用来保存和复用临时对象,以减少内存分配,降低CG压力。
作者:AlbertWen
添加时间:2017-10-29 20:30:53
修改时间:2025-12-03 09:25:17
分类:
21.Golang编程
编辑
通常情况下,函数向其调用方报告错误的方式都是返回一个 error 类型的值。但是,当遇到致命错误的时候,很可能会使程序无法继续运行。这时,上述错误处理方式就太不适合了,Go 推荐通过调用 panic 函数来报告致命错误。
作者:AlbertWen
添加时间:2018-04-09 16:09:48
修改时间:2025-10-13 07:28:02
分类:
21.Golang编程
编辑
Go里面有很多方式返回一个struct的值或者slice,我们经常会看到的是如下的代码:
type MyStruct struct {
Val int
}
func myfunc() MyStruct {
return MyStruct{Val: 1}
}
func myfunc() *MyStruct {
return &MyStruct{}
}
func myfunc(s *MyStruct) {
s.Val = 1
}
作者:AlbertWen
添加时间:2017-10-27 10:31:30
修改时间:2025-11-19 15:25:34
分类:
21.Golang编程
编辑
Go安装
Windows 安装
访问 Golang Code 下载页,32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的。下载好后运行,默认安装目录为 C:/Go,我选择安装到 D:/go/go。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 D:/go/go/bin,并添加环境变量 GOROOT,值为 Go 安装根目录 D:/go/go 。
作者:AlbertWen
添加时间:2017-10-29 20:38:40
修改时间:2025-12-08 23:31:00
分类:
21.Golang编程
编辑
1、判断 类型
类似于 JavaScript 中 typeof 和 Java 中 instanceof
var a interface{}
newA, ok := a.(string)
// 如果 ok 是 true,则说明 变量 a 是字符串类型,而 newA 就是 string 类型的变量,a 的实际值
//
作者:AlbertWen
添加时间:2017-10-29 20:32:50
修改时间:2025-11-11 04:53:35
分类:
21.Golang编程
编辑
基本类型
基本类型是 Go 语言自带的类型,比如 数值、浮点、字符串、布尔、数组 及 错误 类型,他们本质上是原始类型,也就是不可改变的,所以对他们进行操作,一般都会返回一个新创建的值,所以把这些值传递给函数时,其实传递的是一个值的副本。
作者:AlbertWen
添加时间:2017-10-27 13:03:08
修改时间:2025-12-10 14:02:03
分类:
21.Golang编程
编辑
得出以下结论:
1、import 导入的参数是路径,而非包名。
2、尽管习惯将包名和目录名保证一致,但这不是强制规定;
3、在代码中引用包成员时,使用包名而非目录名;
4、同一目录下,所有源文件必须使用相同的包名称(因为导入时使用绝对路径,所以在搜索路径下,包必须有唯一路径,但无须是唯一名字);
5、至于文件名,更没啥限制(扩展名为.go);
作者:AlbertWen
添加时间:2014-10-08 16:24:36
修改时间:2025-12-05 21:56:37
分类:
21.Golang编程
编辑
不翻墙的情况下怎么解决这个问题?其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库
作者:AlbertWen
添加时间:2017-10-29 09:57:25
修改时间:2025-12-15 21:01:16
分类:
21.Golang编程
编辑
Go 语言的 1.5 版本在标准命令方面有了重大变更。这倒不是说它们的用法有多大的变化,而是说它们的底层支持已经大变样了。让我们先来对比一下 $GOROOT/pkg/tool/< 平台相关目录 > 中的内容。以下简称此目录为 Go 工具目录。
插播:平台相关目录即以_命名的目录,用于存放因特定平台的不同而不同的代码包归档文件或可执行文件。其中,代表特定平台的操作系统代号,而则代表特定平台的计算架构代号。使用 go env 命令便可查看它们在你的计算机中的实际值。