不灭的焱

加密类型:SHA/AES/RSA下载Go
复合类型:切片(slice)、映射(map)、指针(pointer)、函数(function)、通道(channel)、接口(interface)、数组(array)、结构体(struct) Go类型+零值nil
引用类型:切片(slice)、映射(map)、指针(pointer)、函数(function)、通道(channel) Go引用

作者: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 命令便可查看它们在你的计算机中的实际值。