go语言

VS Code配置Go语言开发环境

青春壹個敷衍的年華 提交于 2019-12-11 10:24:00
VS Code是微软开源的一款编辑器,插件系统十分的丰富。本文就介绍了如何使用VS Code搭建Go语言开发环境。 VS Code配置Go语言开发环境 说在前面的话,Go语言是采用UTF8编码的,理论上使用任何文本编辑器都能做Go语言开发。大家可以根据自己的喜好自行选择。编辑器/IDE没有最好只有最适合。 下载与安装 VS Code 官方下载地址: https://code.visualstudio.com/Download 三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。 双击下载好的安装文件,双击安装即可。 安装中文简体插件 点击左侧菜单栏最后一项 管理扩展 ,在 搜索框 中输入 chinese ,选中结果列表第一项,点击 install 安装。 安装完毕后右下角会提示 重启VS Code ,重启之后你的VS Code就显示中文啦! VSCode 主界面介绍: 安装Go开发扩展 现在我们要为我们的VS Code编辑器安装 Go 扩展插件,让它支持Go语言开发。 变更编辑器主题 依次点击 首选项->颜色主题 会弹出如下窗口: 推荐类似Sublime Text风格的主题 Monokai ,和明亮风格的主题 Light(Visual Studio) 。 接下来的演示示例就是在 Light(Visual Studio) 主题下截图。 安装Go语言开发工具包

ubuntu16安装golang和goland

瘦欲@ 提交于 2019-12-11 05:40:24
ubuntu安装go语言 至此,上面的win下安装go就作废了,需要在ubuntu上安装go,过程如下: 先下载安装包 https://golang.google.cn/dl/ ,选择Linux版本的安装包 go1.13.5.linux-amd64.tar.gz 在下载目录下打开命令行,将安装包解压到目录/usr/local下, sudo tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz 注意需要事先取得root权限(使用命令su),否则解压时没有权限创建go文件夹。 将 /usr/local/go/bin 目录添加至PATH环境变量: export PATH = $PATH :/usr/local/go/bin 验证安装: go version 安装成功 参考菜鸟教程 https://www.runoob.com/go/go-environment.html ubuntu安装goland go语言全称是golang goland是go语言的IDE 安装过程: 下载Linux版的安装包:https://www.jetbrains.com/go/download/#section=linux 进入下载目录,然后将安装包解压到 /usr/local 目录下 sudo tar -C /usr/local -xzf goland-2019.3

go语言

醉酒当歌 提交于 2019-12-11 03:58:36
1. 函数高级,类型命别名 2.if - else的使用 3.包的使用 4.for循环 5.switch的使用 6.数组的使用 一. 函数高级,类型命别名 二.if - else的使用 //if -else package main import "fmt" func main() { a:=90 //1.//if 条件 {} if a==90{ //在go语言中缩进什么的都无所谓,但是这个花括号与条件不能换行 fmt.Println("a是90") } //2. if a>90{ fmt.Println("a大于90") }else if a<90{ fmt.Println("a小于90") }else{ fmt.Println("a等于90") } //3.// 在条件中可以定义变量,但是他的作用域范围只在if判断内部使用 if a:=90;a>90{ fmt.Println("a大于90") }else if a==90{ fmt.Println(a) } //fmt.Println(a) } 三.包的使用 使用调用 四.for循环 //for 循环 package main import "fmt" func main() { // 这是一个最简单的for循环 定义一个变量也就是初始化,写一个条件,自增 for i:=0;i<10;i++{ fmt.Println(i) }

Go语言函数类型实现接口

不打扰是莪最后的温柔 提交于 2019-12-11 03:32:45
Go语言函数类型实现接口——把函数作为接口来调用 函数和其他类型一样都属于“一等公民”,其他类型能够实现接口,函数也可以,本节将对结构体与函数实现接口的过程进行对比。 首先给出本节完整的代码: package main import ( "fmt" ) // 调用器接口 type Invoker interface { // 需要实现一个Call方法 Call(interface{}) } // 结构体类型 type Struct struct { } // 实现Invoker的Call func (s *Struct) Call(p interface{}) { fmt.Println("from struct", p) } // 函数定义为类型 type FuncCaller func(interface{}) // 实现Invoker的Call func (f FuncCaller) Call(p interface{}) { // 调用f函数本体 f(p) } func main() { // 声明接口变量 var invoker Invoker // 实例化结构体 s := new(Struct) // 将实例化的结构体赋值到接口 invoker = s // 使用接口调用实例化结构体的方法Struct.Call invoker.Call("hello") //

GO语言从入门到放弃

天涯浪子 提交于 2019-12-11 01:01:42
第一章 Go语言简介 协程是go最显著的特性 最好读一读go语言源码 ,项目链接:https://github.com/golang/go go语言只支持i++,别的写法会报错 GOPATH 是一个路径,用来存放开发中需要用到的代码包。 linux中需要设置 GOROOT(安装目录) 和 PATH,把安装目录追加到PATH中,export PATH=$ PATH:$ GOROOT/bin:$GOBIN 如果想要构建一个项目,就需要将这个项目的目录添加到 GOPATH 中,多个项目之间可以使用;分隔 go语言项目的目录一般包含三个子目录 : src, pkg, bin, 包名与目录名应该一一对应 Go语言会把通过go get 命令获取到的库源文件下载到 src 目录下对应的文件夹当中 godep是一个go语言官方通过vender模式来管理第三方依赖的工具 Go语言以“包”作为管理单位,每个 Go 源文件必须先声明它所属的包 import 语句,用于导入程序中所依赖的包,导入的包名使用双引号""包围 go build命令可以将Go语言程序代码编译成二进制的可执行文件 go run命令 会在编译后直接运行Go语言程序,编译过程中会产生一个临时文件,但不会生成可执行文件,很适合用来调试程序。 第二章 GO语言基本语法 声明变量的一般形式是使用 var 关键字: var a , b *

Go语言 - 结构体

穿精又带淫゛_ 提交于 2019-12-10 21:46:47
自定义类型和类型别名 自定义类型 在Go语言中有一些基本的数据类型,如 string 、 整型 、 浮点型 、 布尔 等数据类型, Go语言中可以使用 type 关键字来定义自定义类型。 自定义类型是定义了一个全新的类型。我们可以基于内置的基本类型定义,也可以通过struct定义。例如: // MyInt 将定义为int类型 type MyInt int func main() { var a MyInt fmt.Println(a) // 0 fmt.Printf("%T \n", a) // main.MyInt } 通过 Type 关键字的定义, MyInt 就是一种新的类型,它具有 int 的特性。 类型别名 只是给类型起了个名字,本质上是同一个类型 // Mystring 类型别名 type Mystring = string func main() { var s Mystring fmt.Println(s) // 空 fmt.Printf("%T \n", s) // string } 区别: 自定义类型是生成一个新的类型,类型别名不会产生新的类型 结构体 Go语言中的基础数据类型可以表示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了,Go语言提供了一种自定义数据类型,可以封装多个基本数据类型

Go语言的基本语法(二)

☆樱花仙子☆ 提交于 2019-12-10 21:32:29
  一·if -else   (1) package main import "fmt" // if - else //func main(){ // // 先定义 一个变量 // var a int=90 // // if 条件{} 大括号和条件之间不能进行换行 // // if a>90{ // fmt.Println("大于90") // }else if a<90{ // fmt.Println("a 小于90") // }else{ // fmt.Println("a等于90") // } // //}   (2) 在条件作用域中定义的变量可以 使用 作用域的问题 // 在条件作用域中定义的变量可以 使用 作用域的问题 // 在函数中 进行条件判断 func main(){ if a:=90;a>90{ fmt.Println("大于90") } else if a<90{ fmt.Println("小于90") }else{ fmt.Println("等于90") } }   二. 包的使用 // 包的使用 package main import "mypackage" import "fmt" func main() { //想使用mypackage包下的test函数和test1函数 mypackage.Test1() fmt.Println("xxx") }

Go语言入门

倖福魔咒の 提交于 2019-12-10 21:05:47
今天我好友和我说go语言的好处,我就纳闷了,排名刚刚出来排15的go语言有那么吊吗?于是我就学了一下才发现,go 语言确实好用,只不过插件库太少了,很多依赖还没有. go语言 地址 go语言系统要求 go 的安装步骤和java一样,下载安装搭建环境变量 定义类型 类型( A1 = 字符串 A2 = A1 ) 类型( B1弦 B2 B1 B3 [ ] B1 B4 B3 ) 数组类型 ArrayType = “ [ ” ArrayLength “ ] ” ElementType。 ArrayLength = 表达式。 ElementType = 类型。 实现接口非常简单 InterfaceType = “接口”“ { ” { MethodSpec “ ; ” } “ } ”。 MethodSpec = MethodName 签名 | InterfaceTypeName。 MethodName = 标识符。 InterfaceTypeName = 类型名称。 `` 好啦今天就水到这里啦` 来源: CSDN 作者: 溪水流长 链接: https://blog.csdn.net/weixin_37450409/article/details/103482343

go语言2

走远了吗. 提交于 2019-12-10 19:14:36
所有文件内的package必须一样(可以改别名,但是各个文件内的别名要一样) -函数高级 闭包函数 闭包函数:定义在函数内部,对外部作用有引用 内层函数:定义在函数内部的函数 //(重点) go中函数内部定义的函数是不能有名的,需要定义匿名函数:没有名字 func testt(a int) { func() { fmt.Println("我是内层函数") }()//此处,内部函数定义了,就必须使用!!或者赋值给变量 } func testt(a int) (func()) {//func()是它的返回类型为函数! //var c int =100 b:= func() { fmt.Println(a) fmt.Println("我是闭包函数") } return b } func testt(a int) func(){ b:= func() { fmt.Println(a) fmt.Println("我是内部的函数") } return b } func main() { a:=testt(111111) a() } 类型命别名 type MyInt int var a MyInt=10 var b int =90 a=MyInt(b) fmt.Println(a) -if-else -基本用法 if 条件{ }else if 条件{ }else{ } -在条件中可以定义变量

1.go语言之常量和变量

喜夏-厌秋 提交于 2019-12-10 17:35:43
1.标识符与关键字 1.1标识符 在编程语言中,标识符就是程序员定义的具有特殊意义的词。比如变量名、常量名、函数名等。 Go语言中的标识符由字母,数字和_(下划线)组成,只能以字母和_(下划线)开头。 例如:abc,_abc,_123,a123。 1.2关键字 关键字是编程语言中预先定义好的具有特殊含义的标识符。关键字和保留字都不建议用于变量名。 Go 语言中有25个关键字: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var Go语言中有37个保留字 Constants: true false iota nil Types: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr float32 float64 complex128 complex64 bool byte rune string error Functions: make len cap new append copy close delete complex real imag