示例
assert.go
package main
import "fmt"
type Point struct {
  x int
  y int
}
func main()  {
  var a interface{}
  var point Point = Point{1, 2}
  a = point
  var b Point
  b = a.(Point) //类型断言...
				 
		
				
                 	
						
				
						
                	go mod modfile 引入
练习
目录结构:
common
|-go.mod
mod1
|-demo14mod
|-go.mod
|-main.go
代码
common/go.mod
module demo14mod
go 1.13
require github.com/pkg/errors v0.9.1
mod1/main.go
package ...
				 
		
				
                 	
						
				
						
                	package main
import "fmt"
// 定义一个接口
type Usb interface {
  // 声明两个没有实现的方法
  Start()
  Stop()
}
type Phone struct {
}
// 让Phone 实现Usb接口的方法
func (p Phone) Start()  {
  fmt....
				 
		
				
                 	
						
				
						
                	package main
import "fmt"
type Student struct {
  Name string
  Age int
  Score float64
}
// 将公有的方法绑定到Student 结构体
func (s *Student) GetInfo()  {
  fmt.Printf("学生姓名=%v, 年龄=%v,成绩=%v \...
				 
		
				
                 	
						
				
						
                	person.go
package model
import "fmt"
type person struct {
  Name   string
  age    int // 其他包不能访问
  salary int
}
// 写一个工厂模式的函数,相当于构造函数
func NewPerson(name string) *person {
  r...
				 
		
				
                 	
						
				
						
                	student.go
package model
type student struct {
  Name string
  age int
}
// 结构体student 首字母小写,因此只能在 model 内部使用
// 如果想外部调用,我们可以通过工厂模式解决
func NewStudent(name string, age ...
				 
		
				
                 	
						
				
						
                	GO 1.13 及以上(推荐)
Windows
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
macOS 或 Linux
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn
然后再执行 go get
				 
		
				
                 	
						
				
						
                	package main
import "fmt"
type Person struct {
  Name string
}
func (p Person) test1()  {
  p.Name = "www.gopher.cc"
  fmt.Println(p.Name)
}
func (p *Person) test2()  {
  p.Name = "www.gopher.cc"
  ...
				 
		
				
                 	
						
				
						
                	结构体的所有字段在内存中是连续的
代码:
package main
import "fmt"
// 结构体
type Point struct {
  x int
  y int
}
// 结构体
type Rect struct {
  leftUp, rightDown Point
}
// 结构体
type Rect2 str...
				 
		
				
                 	
						
				
						
                	代码示例:
package main
import "fmt"
func main()  {
  var intArr [5]int = [...]int{1, 22, 33, 66, 99}
  slice := intArr[1:3]
  fmt.Println("intArr=", intArr)
  fmt.Println("slice 的元素是 = ", slice)
  fmt...
				 
		
				
                 	
						
				
						
                	如下面一段代码:
package main
import "fmt"
func main()  {
  var intArr [3]int
  fmt.Println(intArr)
}
内存布局如下:
对上图的总结:
 	数组的地址可以通过数组名来获取 &intArr
 	数组的第一个元素...
				 
		
				
                 	
						
				
						
                	在package main里定义一个函数Add,求两个数之和的函数,然后我们使用单元测试进行求和逻辑测试。单元测试的最常见以及默认组织方式就是写在以 _test.go 结尾的文件中,所有的测试方法也都是以 Test 开头并且只接受一个 testing.T 类...
				 
		
				
                 	
						
				
						
                	[codesyntax lang="c"]
package main
import (
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/toolbox"
)
func InitTask(){
	tk := toolbox.NewTask("generateWarning", "*/...
				 
		
				
                 	
						
				
						
                	array
[codesyntax lang="c"]
package main
import (
	"encoding/json"
	"fmt"
)
func test(data [2]string)  {
	data[0] = "python"
}
func main()  {
	var testArray = [2]string{
		"php",
		"java",
	}
	v, ...
				 
		
				
                 	
						
				
						
                	安装gcc环境
运行环境:window10 64位
下载路径:http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/4.8.2/threads-posix/seh/x86_64-4.8.2-release-posix-seh-r...