还在卷Java?再不学Go就要落伍了!

🔍 前言

Go是谷歌开源的一门编程语言。高并发、云原生、区块链热议不断,Go逐渐进入了大家的视野,那么Go语言到底到底有什么神奇之处?

还在卷Java?再不学Go就要落伍了!

Build fast, reliable, and efficient software 
大规模构建更快、更可靠、更高效的软件应用。
  • 👉 更快

Go语言只有25个关键字,学习起来更快。

Go语言直接编译为二进制可执行文件,无需经过虚拟机解释执行。

  • 👉 可靠、高效

Go在语言层面支持协程并发。

活跃的社区的伙伴支持,生态丰富。

❗️ Show me the code

  • 1️⃣ Hello World

package main

import "fmt"

func main(){
   fmt.Println("Hello World!")
}

输出:

Hello World!
  • 2️⃣ 变量。var用于声明变量,也可使用:=符号对var进行替代。

package main

import "fmt"

func main() {
    var i, j int = 1, 2
    k := 3
    c, python, java := true, false, "no!"

    fmt.Println(i, j, k, c, python, java)
}

输出:

1 2 3 true false no!
  • 3️⃣ 函数

package main

import "fmt"

func add(x int, y int) int {
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}

输出:

55
  • 4️⃣ if else。Go 的 if 语句与 for 循环类似,表达式外无需小括号 ( ) ,而大括号 { } 则是必须的。

package main

import (
"fmt"
)

func if_type(a int) bool {
//if a>100,then return true,else return false
    if a>100{
        return true
    }else {
        return false
    }
}

func main() {
    fmt.Println("a是否大于100:",if_type(200))
}

输出:

true
  • 5️⃣ for。for由初始化语句、条件表达式、后置语句组成。

package main

import (
    "fmt"
)

func for_type_1() int{
    sum := 1
    for ;sum<1000;{
        sum += sum
}
    return sum
}

func main() {
     sum := for_type_1()
    fmt.Println("累加for sum<1000{}的sum值为:",sum)
}

输出:

累加for sum<1000{}的sum值为:1024
  • 6️⃣ switch

package main

import (
    "fmt"
)

func switch_type() string{
    var os string
    switch os = runtime.GOOS;os {
    case "windows":
        fmt.Println("go runs on windows.")
    case "linux":
        fmt.Println("go runs on linux.")
    default:
        fmt.Println("go runs on ",os)
}
    var res = "go runs on "+os
    return res
}

func main() {
   switch_type()
}

输出:

go runs on windows.
  • 7️⃣ 指针

package main

import (
    "fmt"
)

func point_type(i,j *int){
    var m,n *int
    m = i
    n = j
    *m += 100
    *n *= 10
}

func main() {
   var l,b = 1,1
    point_type(&l,&b)
   fmt.Printf("The value of m is %v,the value of n is %v.n",l,b)
}

输出:

The value of m is 101,the value of n is 10.
  • 8️⃣ 结构体。结构体是变量的集合。

package main

import "fmt"

type Vertext struct {
    X int
    Y int
}

func main(){
   v := Vertext{1,2}
   p := &v
    fmt.Printf("v.Y s value is equals p.Y(also can use (*p).Y):%vn",(v.Y==p.Y))
   
}

输出:

v.Y s value is equals p.Y(also can use (*p).Y):true
  • 9️⃣ 数组

package main

import "fmt"

func main(){
    primes := [6]int{2,3,5,7,11,13}
    fmt.Println(primes) 
}

输出:

[2 3 5 7 11 13]
  • 🔟 切片。切片是不定长数组。

package main

import "fmt"

func main(){
    primes := [6]int{2,3,5,7,11,13}
    fmt.Println(primes)
    fmt.Println("slice......")

    sli := primes[1:4]
    fmt.Println(sli)
}

输出:

[2 3 5 7 11 13]
slice......
[3 5 7]
  • 1️⃣1️⃣ Range。for的range形式方便遍历数组和切片。

package main

import "fmt"

func main(){
    primes := [6]int{2,3,5,7,11,13}
    sli := primes[1:4]
   for index,value := range sli{
    fmt.Printf("range...%d,%dn",index,value)
    }
}

输出:

range...0,3
range...1,5
range...2,7
  • 1️⃣2️⃣ 方法。Go没有类,但是我们可以为结构体定义方法。

package main

import (
    "fmt"
    "math"
)

type Vertext3 struct {
    X,Y float64
}

func (v Vertext3) Abs() float64{
    return math.Sqrt(v.X*v.X + v.Y*v.Y)
}

func main(){
   j := Vertext3{3,4}
    fmt.Println(j.Abs())
}

输出:

5
  • 1️⃣3️⃣ 接口。接口是方法的集合。

package main

import (
    "fmt"
    "math"
)

type MyFloat float64

type inter_type interface {
    Lt() float64
}

func (z MyFloat)Lt() MyFloat{
    z = math.Sqrt2
    return z
}

func main(){
   e := MyFloat(-math.Sqrt2)
    fmt.Println(e.Lt())
}

输出:

1.4142135623730951

↘️ 至此,Go的基本用法我们已经会了。详细学习还需要参照Go官方文档。也可从Golang中文社区获取学习资料。

📓 资料链接

  • Go官网

https://go.dev/
  • Golang中文社区

https://studygolang.com/
  • 三本书:《The Way To Go》、《Go Web编程》、《Go并发编程实战》。


欢迎大家在公众号后台留言交流学习!!!✨✨✨

原文始发于微信公众号(fairy with you):还在卷Java?再不学Go就要落伍了!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/29635.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!