GO!GO!Gopher!笑看编程江湖

各位小伙伴们!今天,我们来一起走进GO语言!领略GO语言的魅力,并入门和应用这门强大的编程语言吧!废话不多说,咱们开始吧!

GO语言的简介

GO语言,又称Golang,是谷歌开发的一门开源编程语言。它的设计目标是简单易学、高效快速,同时支持并发编程。这就像一位快乐的小天使,带着笑脸在编程世界中飞舞。

安装GO语言

首先,让我们安装GO语言。推荐使用GOland这个IDE,它是为GO语言开发者设计的超级IDE。别担心,GOland不是神秘的小岛,而是JetBrains推出的一款优秀IDE。

# 用GOland进行安装
go get -u github.com/jetbrains/go-delve/cmd/dlv
# 或者用gitpods.IO进行在线编程
# 注意:gitpods.IO可能会让你上瘾哦!

HELLO WORLD

让我们来迎接传统的HELLO WORLD!是时候展示你的第一行GO代码了。

package main

import "fmt"

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

基础语法 - 变量

在GO语言中,变量的声明和赋值是如此简单。我们就像在花园里播种种子一样,为我们的程序添加一些活力。

goCopy code
package main

import "fmt"

func main() {
    var age int = 30
    name := "Alice"

    fmt.Printf("%s is %d years old.\n", name, age)
}

流程控制 - if else

在人生的道路上,我们经常需要做出选择。在GO语言中,你可以用if else语句来做决策。

goCopy code
package main

import "fmt"

func main() {
    age := 18

    if age >= 18 {
        fmt.Println("成年啦!可以去当兵了。‍✈️")
    } else {
        fmt.Println("未成年,继续上学吧。")
    }
}

循环

GO语言的循环有点像坐过山车,一次次地执行。我们用for语句来控制循环。

goCopy code
package main

import "fmt"

func main() {
    for i := 1; i <= 5; i++ {
        fmt.Printf("第 %d 圈过山车!\n", i)
    }
}

switch

有时候,我们需要根据不同的条件选择不同的路径。在GO语言中,switch语句让这一切变得简单。️

goCopy code
package main

import "fmt"

func main() {
    day := "Wednesday"

    switch day {
    case "Monday":
        fmt.Println("星期一,开始上班!")
    case "Friday":
        fmt.Println("星期五,准备周末!")
    default:
        fmt.Println("其他日子,普通一天。")
    }
}

数组

想象一下你的编程工具箱,GO语言的数组就像是里面的工具。数组是一种有序的数据集合,用于存储一组相同类型的元素。

goCopy code
package main

import "fmt"

func main() {
    numbers := [5]int{1, 2, 3, 4, 5}

    fmt.Println("数组元素:", numbers)
}

map

GO语言的map就像是一本字典,可以通过键找到对应的值。这是一种非常实用的数据结构。

goCopy code
package main

import "fmt"

func main() {
    scores := map[string]int{
        "Alice": 95,
        "Bob":   85,
        "Tom":   78,
    }

    fmt.Println("分数表:", scores)
}

range

遍历数据的时候,我们可以使用range关键字,轻松完成任务。这就像是探险的时候,带着导航工具,让你无所畏惧。

goCopy code
package main

import "fmt"

func main() {
    fruits := []string{"apple", "banana", "orange"}

    for index, fruit := range fruits {
        fmt.Printf("水果索引 %d:%s \n", index, fruit)
    }
}

函数

函数是GO语言的基石,就像是编程世界的魔法师,可以实现各种功能。‍♂️

goCopy code
package main

import "fmt"

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

func main() {
    result := add(10, 20)
    fmt.Println("计算结果:", result)
}

指针

在GO语言中,我们可以使用指针来访问和修改变量的地址和值。这就像是给变量贴上了名片,方便查找。

goCopy code
package main

import "fmt"

func main() {
    age := 25
    agePointer := &age

    fmt.Printf("年龄: %d,指针: %p\n", age, agePointer)
}

结构体

结构体是一种自定义的数据类型,允许你将不同类型的数据组合在一起。它就像是搭建一座大楼,将不同的部分组装成完整的建筑。

goCopy code
package main

import "fmt"

type Person struct {
    Name   string
    Age    int
    Gender string
}

func main() {
    person := Person{Name: "Alice", Age: 30, Gender: "Female"}

    fmt.Printf("姓名:%s,年龄:%d,性别:%s\n", person.Name, person.Age, person.Gender)
}

结构体方法

结构体方法就像是结构体自己的行为,可以通过结构体调用。这就像是人类有自己的技能,不需要外界的帮助。

goCopy code
package main

import "fmt"

type Rectangle struct {
    Width  float64
    Height float64
}

func (r Rectangle) Area() float64 {
    return r.Width * r.Height
}

func main() {
    rectangle := Rectangle{Width: 10, Height: 5}
    fmt.Printf("矩形的面积: %.2f\n", rectangle.Area())
}

错误处理

在编程的道路上,错误是难免的。GO语言提供了简单而强大的错误处理机制,帮助我们应对挑战。

goCopy code
package main

import (
    "fmt"
    "errors"
)

func divide(x, y float64) (float64, error) {
    if y == 0 {
        return 0, errors.New("除数不能为零")
    }
    return x / y, nil
}

func main() {
    result, err := divide(10, 2)
    if err != nil {
        fmt.Println("出错了:", err)
    } else {
        fmt.Println("计算结果:", result)
    }
}

字符串操作

GO语言的字符串操作功能非常强大,就像是一位擅长操纵字符串的魔术师。

goCopy code
package main

import (
    "fmt"
    "strings"
)

func main() {
    message := "Hello, Gophers! How are you doing today?"

    fmt.Println("字符串长度:", len(message))
    fmt.Println("大写字符串:", strings.ToUpper(message))
    fmt.Println("包含Gopher吗?", strings.Contains(message, "Gopher"))
}

字符串格式化

在GO语言中,我们可以使用fmt包提供的字符串格式化功能,轻松打印复杂的输出。️

goCopy code
package main

import "fmt"

func main() {
    name := "Bob"
    age := 25

    formattedString := fmt.Sprintf("姓名:%s,年龄:%d", name, age)
    fmt.Println(formattedString)
}

JSON处理

JSON是一种常用的数据交换格式,GO语言内置了对JSON的支持,可以方便地进行编码和解码。

goCopy code
package main

import (
    "fmt"
    "encoding/json"
)

type Person struct {
    Name   string
    Age    int
    Gender string
}

func main() {
    person := Person{Name: "Alice", Age: 30, Gender: "Female"}

    jsonBytes, _ := json.Marshal(person)
    jsonString := string(jsonBytes)

    fmt.Println("JSON字符串:", jsonString)
}

时间处理

时间是宝贵的资源,在GO语言中,我们可以使用time包来管理时间。⌛

goCopy code
package main

import (
    "fmt"
    "time"
)

func main() {
    now := time.Now()
    formattedTime := now.Format("2006-01-02 15:04:05")

    fmt.Println("当前时间:", formattedTime)
}

数字解析

有时候,我们需要从字符串中提取数字并进行计算。在GO语言中,这个过程变得轻松愉快。

goCopy code
package main

import (
    "fmt"
    "strconv"
)

func main() {
    numStr := "42"
    num, _ := strconv.Atoi(numStr)

    result := num + 8
    fmt.Println("计算结果:", result)
}

进程信息

GO语言的os包提供了许多方法来获取进程信息,让你了解程序运行的环境。

goCopy code
package main

import (
    "fmt"
    "os"
)

func main() {
    pid := os.Getpid()
    hostname, _ := os.Hostname()

    fmt.Printf("进程ID:%d,主机名:%s\n", pid, hostname)
}

最后

GO语言简单易学、高效快速,支持并发编程,让编程之路充满了乐趣。无论你是新手还是老手,GO语言都值得你去学习和尝试。期待你在GO的世界中,开启更多精彩的编程之旅!

如果有什么问题,欢迎还请各位大佬批评指正。Happy coding!)

你可能感兴趣的:(GO,基础学习,电子笔记,golang,开发语言,后端)