为什么用go,就是为了快速响应并且高并发。
一样的逻辑,用java也能实现,但用go可能就比java快点。
如果你很熟练java了,那么学习go就会很快。
go的社区环境相比java没那么大,但一般问题都足够了。
go是谷歌出品,无脑追求性能。
go学习01
go学习02
先来个简单的go版hello word:
package mainimport ("fmt""strings""unsafe"
)func init() {fmt.Println("init方法执行================================")
}
//hello world
func main() {fmt.Println("hello world")fmt.Println("hello," + ",world")fmt.Println("测试数值===============================")testNumber()fmt.Println("测试布尔类型===============================")testBool()fmt.Println("测试字符串===============================")testString()fmt.Println("测试常量===============================")testConst()
}func testNumber() {var a1 = 2var a2 = 26fmt.Println("a1:", a1)fmt.Println("a2:", a2)fmt.Println("a1+a2:", a1+a2)//数值加减var a float32 = 12var b float32 = 13.222fmt.Println("a:",a)fmt.Println("b:",b)fmt.Println("a + b:",a + b)
}var isActive bool //全局变量声明
var enable, disable = true, false //忽略类型声明
func testBool() {var available bool //一般声明valid := false //简短声明available = true //赋值操作fmt.Println("isActive:", isActive)fmt.Println("enable:", enable)fmt.Println("disable:", disable)fmt.Println("available:", available)fmt.Println("valid:", valid)
}func testString() {str := "a a a\n b b b \n ccc"str = strings.Replace(str, " ", "", 1)fmt.Println("去除一个空格", str)str = strings.Replace(str, " ", "", -1)fmt.Println("去除所有空格", str)
}func testConst() {//常量是一个简单值的标识符,在程序运行时,不会被修改的量。//常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。const LENGTH int = 10const WIDTH int = 5var area intconst a, b, c = 1, false, "str" //多重赋值area = LENGTH * WIDTHfmt.Println("面积为 : ", area)fmt.Println(a, b, c)const ( // 枚举,数字 0、1 和 2 分别代表未知性别、女性和男性。Unknown = 0Female = 1Male = 2)fmt.Println("Unknown:",Unknown)const (a1 = "abc"b1 = len(a1)c1 = unsafe.Sizeof(a1))fmt.Println("a1:",a1)fmt.Println("b1:",b1)fmt.Println("c1:",c1)
}