Go语言上手

52 阅读2分钟
初体验Go语言,可以感觉到它与其他语言的相似,它也有他自己的特点。
第一步就是配置一个属于他的GO语言环境,这一步也遇到了很多困难,在命令框中的go env过程中,没有输入-w导致配置多次无果。还好最终解决了,同时在vscode中完成了配置和Go语言所需插件的安装,成功运行出了一个Go代码。
package main

import "fmt"

func main() {
	fmt.Println("hello go")
}

很大的一个不同就是Go语言的输出函数也需要调用一个库“fmt”,在其他的语言当中,输入输出都是像与生俱来一般,而GO则是“fmt。Println”。
紧接着的便是关于Go语言基础算法的一些学习,整体进度还是相对比较快的一个节奏,好在有其他语言的基础在。
Go中定义变量与web类似,采用var进行定义,它会根据创建的变量来确定类型,但也可以在后面跟着类型,特殊的一点是
关于浮点数float的定义,精度采用后缀3264进行区分,单精度为float32,双精度为float64.如果定义一个常量则用const定义。
package main
import(
"fmt"
" math")
func main( ) {
var a = "initial"
var b,c int = 12
var d = true
var e float64
f := float32( e)

g :=a + "foo"
fmt. Println(a, b,c,d,e, f) // initial 1 2 true 0 0
fmt.Println( g)// initialapple

const s string = "constant"
const h= 500000000
const i = 3e20/ h
fmt.Println( s,h, i, math. Sin(h),math.Sin(i))
}

很多规则都大差不差。其中的map的key 也可以用string类来定义。函数类不仅需要定义参数类型和个数,还得对输出参数的类型进行定义。
package main
import "fmt"

func add( a int, b int) int {
return a + b

func add2( a, b int) int {
return a + b

func exists(m map[string]string,k string) ( v string,ok bool) {
v, ok = m[k]
return v,ok

func main( ) {
res := add( 12)
fmt.Println( res) // 3
v, ok := exists( map[string]string{ "a" : "A"},"a" )
fmt.Println(v,ok)// A True
}
最让我惊讶的是自增需要指针的参与。还有一些错误处理也需要注意。
package main

import "fmt"

func add2(n int) {
    n+= 2
}

func add2ptr(n *int) {
    *n+=2
}

func main() {
    n := 5add2( n)
    fmt.Println(n) // 5
    add2ptr(&n )
    fmt.Println(n)// 7
}