科普
go 是
- 编译型语言
- 静态强类型语言()
- 跨平台的编译型语言(C 在 windows 编译,只能在 windows 下运行)
GO:2009年11月出的(Google 出的)
python:1989年出的
java:1990年出的
c#:微软
java:sun公司(后来被甲骨文收购了)
django 对档次请求放到一个数据库事务中(怎么像 java 一样,把整个请求都用事务控制起来) -- 面试
- 可以写装饰器把整个请求函数包起来
- 也可以在数据库连接的时候配置
java 的一些科普
go 为什么这么火?
环境搭建(很重要)
去官网下载安装包,图形化一步步安装
go version
查看 go 版本
go env
查看 go 的配置
GOPATH=C:\Users\Administrator\go
go 代码的存放路径(可以改,环境变量里)(代码必须放在这个路径下)下载的第三方包是放在 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)
// 且必须放在第一行
// 编译型语言需要有一个入口文件 main 包下的 main 函数
import "fmt"
func main() {
fmt.Println("Hello world!") // 打印 Hello world!
}
编译与执行
编译、执行(命令行)
go build first.go
first.exe (windows 平台生成的运行文件)
编译并执行(不生成对应平台的运行文件)
go run first.go
变量类型
关键字 var
// 三种定义方式(变量不能重复定义)
var a int =10
var b = 10 // 变量会自动推导类型
c := 10 // 变量会自动推导类型
// int 类型默认值为 0
// string 类型默认值为 ""
// 布尔类型默认值为 false
变量不管用不用,必须先指定类型(或者有值了让它自己推导)
数字类型
字符串类型
双引号、反引号(表示多行)
......
s := "123" // 只能用双引号引起来,单引号不行
s2 := `这是一个
可以换行
的字符串`
布尔类型
常量
关键字 const
const a = 10
函数
关键字 func
func add(a,b int) int{
return a+b
}
...
func test(s ...string) long_str string {
long_str = s... // 定义过的命令返回值,可以直接用
return
}
命名返回值,(函数返回值定义那里)定义了就直接可以用了(就不需要在函数体里定义了),也不需要再指定把它传出去
在 go 中没有位置参数和关键字参数这么一出,都是位置参数,也没有默认参数
课后作业
- 搭建go语言环境,并打印helloworld
- 定义一个函数,输入一个三位数数字,返回两个返回值:每一位的平方、每一位的立方和 (例如345 返回3的平方+4的平方+5的平方 ,3的立方+4的立方+5的立方)
- 给上面的函数加入时间统计(time模块)
进阶- 写一个函数,返回函数类型
- 写一个函数,实现统计函数执行时间功能