《Go学习之路》
文章平均质量分 53
性能仅比C语言相差百分之十,开发效率却和Python差不多!
小叶柏杉
一个努力保住头发的程序猿。
展开
-
Go语言的切片 slice
什么是切片 sliceGo 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大Go的切片类型为处理同类型数据序列提供一个方便而高效的方式。 切片有些类似于其他语言中的数组,但是有一些不同寻常的特性。 本文将深入切片的本质,并讲解它的用法。切片原理定义切片// 第一种var identifier []type//第二种 使用makevar slice1原创 2022-02-04 15:20:52 · 927 阅读 · 0 评论 -
Go语言的数组
数组机器学习的同学对python的array应该很了解,但是做web开发的同学对python的array使用的不多Go 语言提供了数组类型的数据结构。 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推。数组的下标取值范围是从0开始,到长度减1。数组一旦定义后,大小不能更改。数组是具有相同唯一类型的一组已编号且长度固定的数原创 2022-02-04 09:29:53 · 169 阅读 · 0 评论 -
【Go语言之路 基础篇】Go语言的switch语句
switch语句原创 2022-02-04 07:38:28 · 248 阅读 · 0 评论 -
【Go语言之路 基础篇】Go的goto语句
goto语句Go 语言的 goto 语句可以无条件地转移到过程中指定的行。goto 语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。但是,在结构化程序设计中一般不主张使用 goto 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。goto 语法格式如下:goto label;...label: statement;package mainimport "fmt"func main() { /* 定义局部变量 */ var a原创 2022-02-03 11:52:37 · 1359 阅读 · 0 评论 -
【Go语言之路 基础篇】Go语言的条件控制语句和循环控制语句 if for
if语句go语言的常用控制流程有if和for,没有while, 而switch和goto是为了简化代码,降低重复代码,属于扩展的流程控制。if语句的结构:if 布尔表达式 { /* 在布尔表达式为 true 时执行 */}if 布尔表达式 { /* 在布尔表达式为 true 时执行 */} else { /* 在布尔表达式为 false 时执行 */}if 布尔表达式1 { /* 在布尔表达式1为 true 时执行 */} else if 布尔表达式2{ /原创 2022-02-03 11:35:47 · 885 阅读 · 0 评论 -
【Go语言之路 基础篇】Go 格式化输入与输出
输出 格式化缺省格式和类型package mainimport "fmt"func main() { name := "nick" age := 18 fmt.Printf("name:%v, age:%v\n", name, age) // name:nick, age:18 fmt.Printf("name:%#v, age:%#v\n", name, age) // name:"nick", age:18 原样打印,string类型,int类型 fmt.Printf("name原创 2022-02-03 09:30:41 · 715 阅读 · 0 评论 -
【Go语言之路 基础篇】Go 转义符 和 字符串基本操作
转义符字符串查询strings.Contains 函数查看字符串package mainimport ( "fmt" "strings")func main() { var name string = "aabbccddd" var s = strings.Contains(name, "a") fmt.Println(strings.Contains(name, "a")) \\ true fmt.Println(strings.Index(name, "c")) \\ 4原创 2022-02-03 09:06:22 · 917 阅读 · 0 评论 -
【Go语言之路 基础篇】Go语言运算符和表达式
算数运算符算数运算符+ - * / %(求余) ++ --关系运算符关系运算符:== != > < >= <=逻辑运算符这个和python不一样,python中使用 and or来连接package mainimport "fmt"func main() { var a bool = true var b bool = false if ( a && b ) { fmt.Printf("第一行 - 条件为 true\原创 2022-02-02 23:53:36 · 805 阅读 · 0 评论 -
【Go语言之路 基础篇】Go数据类型的转换
简单的转换操作隐式类型转换a := int(3.0)fmt.println(a) // 3//在go语言中不支持变量间的隐式类型转换//1. 变量间类型转换不支持var b int = 5.0 //5.0是常量,常量到变量是会进行隐式转换fmt.println(b) // 5// 注意var b int = 5.1 fmt.println(b) // 报错,无法转换c := 5.0fmt.Printf("%T\n",c) // float64var d int = c //原创 2022-02-01 23:06:30 · 903 阅读 · 0 评论 -
【Go语言之路 基础篇】Go的基本数据类型
bool 布尔类型布尔型的值只可以是常量 true 或者 false。一个简单的例子:var b bool = true数值类型1. 整数型有符号:int8 有符号 8 位整型 (-128 到 127) 长度:8bitint16 有符号 16 位整型 (-32768 到 32767)int32 有符号 32 位整型 (-2147483648 到 2147483647)int64 有符号 64 位整型 (-9223372036854775808 到 9223372036854775807).原创 2022-01-31 22:43:20 · 784 阅读 · 0 评论 -
【Go语言之路 基础篇】变量的作用域
变量的作用域全局变量不允许使用 a := 10局部变量可以与全局变量名相同,并覆盖全局变量 a:=10会发现其中的逻辑错误,if……else逻辑缺少变量,会提示错误无法运行。package mainimport "fmt"var a int = 20// 不能使用 a:= 20func main() { // 变量的作用域 // 局部变量 c := 10 a := 30 // 可以重名 fmt.Println(c) fmt.Println(a) // 静态语言写起来原创 2022-01-30 06:53:51 · 387 阅读 · 1 评论 -
【Go语言之路 基础篇】定义常量
常量的定义常量是一个简单值的标识符,在程序运行时,不会被修改的量。例如数学中的,π:3.1415926显式类型定义: const b string = "abc"隐式类型定义: const b = "abc"package mainimport "fmt"func main() { const LENGTH int = 10 const WIDTH int = 5 var area int const a, b, c = 1, false, "str" //原创 2022-01-30 05:26:34 · 371 阅读 · 0 评论 -
【Go语言之路 基础篇】匿名变量
匿名变量是什么变量一旦被定义,不使用,是不行的会报错。所以要使用匿名变量。python中如何定义匿名变量?my_list = ["bobby", "imooc", "test"]#不打印 indexfor index, item in enumerate(my_list): print(item)上面并没有打印index,实际上有些情况下,我们并不会使用index这个变量。但是这个时候index的变量不使用但是index这个名称却被占用了,所以这个时候我们就可以使用匿名变量。将上面的代原创 2022-01-30 04:05:50 · 544 阅读 · 0 评论 -
【Go语言之路 基础篇】变量定义
如何定义变量静态的语言的变量和动态语言的变量定义差异很大变量定义了,不用的话会报错的。var名称类型是声明单个变量的语法单声明变量第一种,指定变量类型,声明后若不赋值,使用默认值var name stringname ="hello"第二种,根据值自行判定变量类型(类型推断Type inference)如果一个变量有一个初始值,Go将自动能够使用初始值来推断该变量的类型。因此,如果变量具有初始值,则可以省略变量声明中的类型。var name ="hello"第三种,省略var, 注原创 2022-01-30 04:01:03 · 965 阅读 · 0 评论 -
【Go语言学习之路 0】Go语言介绍
Go语言介绍Google开源编译型语言2006年开始,2009年开源,国内发展尤其迅速Go语言部分核心团队主流编程语言时间线目前主流编程语言都是2000年以前发布从时间点来看,go语言出现CPU双核之后,专门考虑多核的使用。Go语言最初目的是替代c++,崇尚c语言的设计理念Go语言设计的时候遵循着c语言的简单,Python语言的易用。Go语言的优势语法简单 – 开发效率高集各种语言的优势 – 大量参考c和python执行性能高 – 直接编译成二进制,部署非常简单原创 2022-01-29 23:05:15 · 576 阅读 · 0 评论 -
【Go语言学习之路 5】标识符和关键字
标识符标识符是用来表示Go中的变量名或者函数名,以字母开头或_开头,后面跟着字母、_或数字。88ab 错误_ab28 正确ab_28 正确关键字关键字时Go语言预先设定好的,有特殊意义的标识符。下面列出GO语言的关键字或保留字:程序声明import:导入包;package:声明包名;程序实体声明和定义var:声明变量,如:var name type 或者 var name := value;const:声明常量;func:定义函数或方法;interface:定义接口原创 2022-01-20 23:14:02 · 324 阅读 · 0 评论 -
【Go语言学习之路 4】Go 基本命令和特性
Golang 基本命令和特性原创 2022-01-20 05:15:09 · 427 阅读 · 0 评论 -
【Go语言学习之路 3】Go的第一个程序,Hello World
第一个程序hello.gopackage mainimport "fmt"func main() { fmt.Println("Hello World")}终端输出GOROOT=C:\Go #gosetupGOPATH=E:\Go #gosetupC:\Go\bin\go.exe build -o C:\Users\柏杉\AppData\Local\Temp\GoLand\___go_build_hello_go.exe E:\Go\test1\hello.go #gosetup原创 2022-01-20 04:20:42 · 469 阅读 · 0 评论 -
【Go语言学习之路 2】Go目录结构划分
目录结构划分,个人与公司团队三个环境变量的配置。- GOROOT:Go 安装后的根目录(例如:D:\Program Files\Go),安装过程中会由安装程序自动写入系统环境变量中。go语言自带的类库。- GOBIN:Go 的二进制文件存放目录(%GOPATH%\bin),这里注意。否则后面go install 不会成功- PATH:需要将 %GOBIN% 加在 PATH 变量的最后,方便在命令行下运行。GOPATH : Go 的工作空间(例如:我们的开发目录 f:\works\Golang)原创 2022-01-20 03:56:03 · 993 阅读 · 0 评论 -
【Go语言学习之路 1】下载,安装,环境变量,IDE
下载Go官网地址:https://go.dev/点击 download 进入下载页面选择你要的版本我是Windows直接下载安装GoCMD启动控制台,输入goC:\Users\柏杉>goGo is a tool for managing Go source code.Usage: go <command> [arguments]The commands are: bug start a bug report原创 2022-01-20 03:40:26 · 481 阅读 · 0 评论