Go-环境搭建-hello world-变量常量定义-函数使用基础
2019-12-10 15:49
591 查看
目录
编程语言科普
go 语言是
- 编译型语言
- 静态强类型语言(强类型:类型固定)
- 跨平台的编译型语言
常见语言的背景
GO:2009年11月出的(Google 出的)
python:1989年出的
java:1990年出的
c#:微软
java:sun公司(后来被甲骨文收购了)
-c开发:在windows上开发,编译好的只能在windows上用 -java横空出世:跨平台,一处编码到处运行 -运行在java虚拟机之上 -编译成字节码文件:中间态 -go:跨平台编译 -在windows平台可以编译出linux下的可执行文件 -java概念普及: -jdk:开发人员需要装jdk -jre:运行java程序,需要装 -jvm:java虚拟机 -javase:java基础,安卓方向 -javaee:javaweb方向 -ssh框架:spring structs Hibernate -ssm框架:spring springmvc mybatis -spring全家桶 -springboot:一站式搞定 -springclode:微服务开发 -javame:手机端开发 -大数据:
go 为什么这么火?
-docker容器化部署、devops 比较火 -k8s 是用go写的:容器编排 -在区块链领域:第一个开源的区块链项目是用go写的 -性能高,特别适合服务端开发 -部署容易
环境搭建(很重要)
去官网下载安装包,图形化一步步安装(非常简单)
命令
1)
go version查看 go 版本
2)
go env查看 go 的配置
GOPATH=C:\Users\Administrator\go
go 代码的存放路径(可以改,环境变量里)(代码必须放在 GOPATH 对应的路径下)下载的第三方包是默认放在 GOPATH 路径下的
GOROOT=E:\Go
go 的路径,如果没有配置,内置包可能就用不了导包的时候,查找路径:先去 goroot 中找,然后去 gopath 中找,再找不到,否则报错(所以自己写的包必须放在 gopath 里面,不然找不到)
ide 编辑器
- GoLand (jetbrians)
- sublime
- vscode
- liteIDE
补充:
主流的 IDE (集成开发环境)
jetbrains 全家桶(差不多把市面上所有编程语言的开发工具都写了一遍)
可以用 pycharm 的激活码激活(一家的激活码是通用的)
注释
//单行注释 /* 多行注释 多行注释 */
第一个程序 Hello world!
first.go
package main // 表示当前 go 文件属于哪个包(main) // 且必须放在第一行(注释除外) import "fmt" // 编译型语言需要有一个入口文件: main 包下的 main 函数 func main() { //定义了一个main函数 fmt.Println("Hello world!") // 打印 Hello world! }
编译与执行
编译、执行(命令行)
go build first.go(文件名)
first.exe (windows 平台生成的运行文件)
编译并执行(不生成对应平台的运行文件)
go run first.go(文件名)
变量类型
关键字
var
package main //表示是main包的 import "fmt" func main() { // 三种定义方式(变量不能重复定义) // var关键字 变量名 变量类型 = 值 var a int =10 //定义了一个int类型的变量a ,并把10赋值给它 var b = 10 // 变量会自动推导类型 c := 10 // 变量会自动推导类型(最简短的写法) // 定义的时候可以不赋初值 // int 类型默认值为 0 :var a int // string 类型默认值为 "" :var s string // 布尔类型默认值为 false :var b bool //同时定义多个变量 var a = 10 var b = 100 var a, b int var a, b int = 10, 20 var a, b = 10, 20 var a, b = 10, "lqz" a, b := 10, 20 a,b := 10,"lqz" fmt.Println(a) fmt.Println(b) var ( name = "naveen" age = 29 height int ) fmt.Println(name) fmt.Println(age) fmt.Println(height) //naveen //29 //0 }
- 变量不管用不用,都必须先指定类型(或者有值了让它自己推导)
- 变量类型一旦定义了,后续不可更改(强类型语言,类型是固定的)
数字类型
/* int类型:表示整数,int8 int16 int32 int64 计算机最小计量单位:bit位 int8 是 8个比特位=1个字节,表示的范围是:正负2的7次方减1 在32位机器上int 就是int32 ,在64位机器上int就是int64 uint类型:表示正整数 uint8 uint16... float类型:表示小数只有float32和float64 complex64类型:复数 byte: uint8的别名 rune:int32的别名 */
字符串类型
s := "123" // 只能用双引号引起来,单引号不行 s2 := `这是一个 可以换行 的字符串` // 也可以用反引号包起来,反引号内的字符串可以换行
布尔类型
isnull := false // go 中的布尔类型都是小写的,与python不同
常量
关键字
const
const a = 10 // 也可以类型推导 const b = "127.0.0.1"
函数
关键字
func
可以用
_接收不要的返回值,
//函数定义,语法 //func关键字 函数名(参数1 类型,参数2 类型) (返回值类型){} //无参数,无返回值 func test() { fmt.Println("xxx") } //有两个int类型的参数 // func test(a int,b int) { // 可简写成下面的 func test(a ,b int) { fmt.Println(a+b) } //有一个数字类型返回值,一定要指定返回值类型 func test(a,b int) int { return a+b } func test(a,b int) string { return "lqz" } //返回多个值 func test(a,b int) (int,string) { return a+b, "成功" } //命名返回值 func test(a,b int) (c int, d string) { c=10 d="成功" return // 在函数定义时指定的返回值会自动返回,不需要 return 的时候再写一遍 } //在go中没有位置参数和关键字参数,都是位置参数,也没有默认参数 func test(a,b int) int { return a+b } //不定长参数 "..." func test(a ...interface{}) { // interface{} 这是个特殊情况,可以接收所有类型的参数 fmt.Println(a) }
1)命名返回值(函数返回值定义那里),定义了就直接可以用了(不需要再在函数体里定义),也不需要再指定把它传出去(会自动把它一并 return 出去)
2)在 go 中没有位置参数和关键字参数这么一出,都是位置参数,也没有默认参数
课后作业
- 搭建go语言环境,并打印helloworld
- 定义一个函数,输入一个三位数数字,返回两个返回值:每一位的平方、每一位的立方和 (例如345 返回3的平方+4的平方+5的平方 ,3的立方+4的立方+5的立方)
- 给上面的函数加入时间统计(time模块)
进阶 写一个函数,返回函数类型 - 写一个函数,实现统计函数执行时间功能
相关文章推荐
- Go学习笔记----2,各种语法基础技术使用详解(变量、常量、iota、运算符、条件语句)
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- 黑马程序员_Java基础(环境搭建,常量变量,类型转换,运算符,控制语句)
- 介绍,环境搭建,基础语法,常量,变量
- Windows下使用VIM,搭建Mainframe开发环境(八)---自定义功能函数
- 在vim中使用cscope查找调用、定义函数和变量的地方
- 黑马程序员——java基础语法总汇关键字、常量、变量、语句、函数、数组
- C语言返璞归真之修改const常量和使用变量定义数组长度
- static(c中定义的关键字1、被其修饰者 外部无法使用(相反的都可以使用extern在外部使用) 2、函数局部变量使用成为静态的放入静态池-生存期改变。c++进行了扩充,使它在类中有了特殊作用)
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符. 分类: iOS学习 c语言基础 2015-06-10 21:39 25人阅读 评论(0) 收藏
- 简单易懂的Android --NDK环境搭建>基础使用过程
- pl/sql 基础---定义并使用变量!
- Hadoop平台搭建使用系列教程(2)-预定义集群环境
- Mac OSX下Go语言开发环境的搭建与配置--使用InteliJ IDEA 13
- go语言学习,使用Sublime Text 2 搭建环境
- Redis学习——环境搭建以及基础命令使用
- 3、Swift变量、常量、函数、类以及扩展类的使用
- Java基础-环境变量设置及Java命令行使用 - 史上最全
- 04PHP基础-常量定义输出 04PHP基础-数组定义及使用
- DirectX 3D_基础之HLSL(高级着色语言) HLSL着色器程序的编制 HSLS变量 HLSL入口函数 HLSL程序编译 变量常量类型 设置方法 前缀 关键字 类型 语句 类型转换