Golang 基本语法 Golang

package main

import "fmt"

// 基本语法
func main(){

    // 一、变量声明 Go有多种方式声明变量

    // 1.显式声明
    var x int
    x = 10

    // 2.简短声明 (简短声明只能是新变量,现在给上面的x使用简短声明,则会报错)
    k := 10

    // 二、数据类型
    // 1.整型 int int8 int16 int32 int64
    var int_a int = 5

    // 2.浮点型 float32 float64
    var float_a float32 = 3.14

    // 3.字符串 string
    var string_a string = "你好,Golang"

    // 4.布尔型 bool
    var bool_a bool = true
    var bool_b bool = false

    // 5.字符型 rune

    // 三、常量声明 (常量一旦声明就不能更改其值。常量声明使用cost关键字)
    const PI = 3.14
    const Greeting = "Hello"

    // 四、控制结构
    // 条件语句 Go使用 if 语句进行条件判断
    ifa := 10

    if ifa > 10 {
        fmt.Println("ifa 大于 10")
    } else {
        fmt.Println("ifa 小于等于 10")
    }

    // 循环语句 Go只有一个循环语句 for, 它可以用于多种情况
    for i :=0; i < 5; i++ {
        fmt.Println(i)
    }

    // 使用for 模拟 while 循环
    wi := 0
    for wi < 5 {
        fmt.Println(wi)
        wi++
    }

    // 无限循环
    for {
        fmt.Println("这是一个无限循环(死循环)")
    }

    // Switch 语句
    day := 2
    switch day {
    case 1:
        fmt.Println("这是1")
    case 2:
        fmt.Println("这是2")
    default:
        fmt.Println("不是1也不是2")
    }

    // Select语句 (用于多路选择 常用于 goroutines ) 此处略过

    // 五、函数
    // 函数声明 (函数使用func 关键字声明,函数可以有多个返回值)
    func add(a int, b int) int {
        return a + b
    }

    // 多返回值函数
    func divide(a int, b int) (int, int) {
        return a / b, a % b
    }

    // 匿名函数
    addfunc := func(a, b int) int {
        return a + b
    }
    fmt.Println(addfunc(3, 4))

    // 函数作为参数(go支持将函数作为参数传递)
    func apply(a int, f func(int) int) int {
        return f(a)
    }
    func square(x int) int {
        return x * x
    }
    fmt.Println(apply(5, square)) // 25

    // 六、数组与切片
    // 数组(Go中的数组大小是固定的,一旦声明不能更改大小)
    var arr [3]int = [3]int{1, 2, 3}
    fmt.Println(arr)

    // 切片(切片是GO中更加灵活的数组,可以动态增长)
    var slice []int = []int{1, 2, 3}
    slice = append(slice, 4)
    fmt.Println(slice)

    // 七、结构体(结构体是 Go 中的复合数据类型,通常用来表示对象或记录)
    type Person struct {
        Name string
        Age  int
    }

    p := Person{Name: "John", Age: 30}
    fmt.Println(p.Name)

    // 八、接口(接口是 Go 中的核心概念之一,它定义了行为而不关心具体类型)
    type Speaker interface {
        Speak() string
    }

    type Person struct {
        Name string
    }

    func (p Person) Speak() string {
        return "Hello, my name is " + p.Name
    }

    func introduce(speaker Speaker) {
        fmt.Println(speaker.Speak())
    }

    p := Person{Name: "John"}
    introduce(p)

    // 九、错误处理(Go 中没有异常处理机制,而是通过返回值来传递错误信息)
    func divide(a, b int) (int, error) {
        if b == 0 {
            return 0, fmt.Errorf("cannot divide by zero")
        }
        return a / b, nil
    }

    result, err := divide(10, 0)
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("Result:", result)
    }

}

杨佳乐 发布于  2025-1-9 19:11 

Go Hello World Golang

首先安装golang环境,安装后使用 go version 验证是否安装成功

Hello World

在 Go 中,程序的入口是 main 函数。下面是一个简单的 Go 程序:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}
  • package main:声明包名,main 是 Go 程序的入口包。
  • import "fmt":导入标准库 fmt,用于格式化输入输出。
  • func main():main 函数是 Go 程序的入口函数,程序从这里开始执行。
  • fmt.Println:输出内容。

运行代码

go run main.go

杨佳乐 发布于  2025-1-9 18:41 

开始学习Golang Golang

从 PHP 转向 Go:探索 Go 语言的优势与提升的技能

随着技术的不断发展,越来越多的开发者选择在不同的编程语言之间转换,以应对日益增长的需求和挑战。作为一个曾经的 PHP 开发者,我决定开始学习 Go 语言,并探索它带来的新体验。Go(也叫 Golang)是一门由 Google 开发的编程语言,因其高效、简洁、并发友好的特性,成为了很多开发者和企业的首选语言。

在这篇文章中,我将分享 Go 语言的几个关键优势,以及从 PHP 转向 Go 后,哪些技能和体验会得到显著提升。

Go 的优势

1. 高效的性能

Go 是一门编译型语言,它编译后的代码能够直接运行在机器上,性能接近 C 语言,而不需要像 Java 那样通过虚拟机执行。Go 的高效性能使其在处理高并发任务和大规模分布式系统时,能够提供优异的表现。这对于开发 Web 服务、微服务以及高流量应用非常重要。

相比 PHP,Go 的运行效率显著提高,尤其是在处理大量请求或高并发任务时,Go 可以更好地利用硬件资源,减少延迟。

2. 简洁的语法

Go 语言的设计哲学之一是简洁性,它去除了许多传统编程语言中复杂的特性,例如类、继承、泛型等,使得语言本身更加易学易用。Go 的语法非常简洁,只有少量的关键字和规则,这使得代码更容易阅读和维护。

从 PHP 转向 Go 后,我发现 Go 的代码结构更加直观,函数和方法的定义、变量的声明都非常清晰。你可以在很短的时间内理解其他开发者的代码,提高了团队协作的效率。

3. 内建并发支持

Go 的并发编程是其最突出的特点之一。Go 使用 goroutines 和 channels 来实现轻量级并发,这比传统的线程更加高效和易用。在 Go 中,启动一个新的 goroutine 只需要一个 go 关键字,它能够并发地执行任务,而不会造成性能瓶颈。

在 PHP 中,通常需要使用额外的工具或扩展来处理并发,而 Go 内建的并发支持使得并发编程变得更加简单和高效。这对于构建高并发的 Web 服务或实时系统来说,Go 是一个理想的选择。

4. 垃圾回收与内存管理

Go 提供了自动垃圾回收功能,它能够在后台处理内存的分配和释放,减少了手动管理内存的复杂性。Go 的垃圾回收机制是增量式的,能够有效地减少停顿时间,保持应用的高性能。

对于 PHP 开发者来说,Go 的内存管理相比 PHP 的 garbage collector 更加高效,可以帮助你在开发中更加专注于业务逻辑,而无需过多担心内存泄漏等问题。

5. 强大的标准库和生态系统

Go 提供了一个丰富的标准库,涵盖了 Web 开发、文件处理、网络编程、加密等各个方面。这意味着你可以不依赖第三方库就能实现许多常见功能。Go 的标准库文档也非常详细,学习起来非常方便。

另外,Go 语言的生态系统正在快速发展,越来越多的第三方库和框架被社区提供。例如,常用的 Web 框架(如 Gin、Echo)以及数据库操作库(如 GORM)都能帮助开发者快速开发应用。

结语

虽然目前在 PHP 中使用 Webman 提供 Web 接口,能够带来非常棒的编程体验,且开发速度较快,但 Go 语言在性能和可扩展性上具备明显的优势。Go 的高性能使得它在处理大规模并发和高负载时更加得心应手,同时它的扩展性也为构建复杂的系统提供了更多的可能性。在未来的职业发展中,掌握 Go 语言将使你在竞争中更具优势。尽管现在使用 Webman 感觉非常舒适,但成长往往来自于跳出舒适圈。加油!


杨佳乐 发布于  2025-1-9 18:00 

阿里云Ubuntu服务器挂载硬盘 服务器

阿里云Ubuntu服务器挂载硬盘


杨佳乐 发布于  2024-10-12 19:23 

nvm 常用命令 前端

nvm 常用命令


杨佳乐 发布于  2024-8-22 16:16