c语言编程笔录

首页 >   > 笔记大全

笔记大全

只自学golang

更新时间:2023-12-26

第一段:Golang的概述

Go语言是Google公司研发的一种开源编程语言,于2009年11月首次亮相,并在2012年发布了1.0版本。它被设计成一种快速、简洁、安全和易于使用的编程语言。Go语言的特性包括协程、垃圾收集以及静态链接等,它在Web服务器、分布式系统和微服务中得到广泛应用。

package main

import "fmt"

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

第二段:Golang的基础语法

Go语言的基础语法类似于C语言,它具有变量、常量、函数、运算符、控制结构等基本元素。变量需要先声明后使用,常量的值在编译时就能确定,函数具有参数和返回值等特性,运算符包括算术运算符、关系运算符和逻辑运算符等,控制结构包括if语句、switch语句和for循环等。Go语言还有一些特别的语法,如defer关键字、go关键字和panic、recover函数等。

package main

import "fmt"

func main() {
    var name string = "John"
    age := 25
    const pi float32 = 3.14
    fmt.Printf("My name is %v\n", name)
    fmt.Printf("I am %v years old\n", age)
    fmt.Printf("The value of pi is %v\n", pi)
}

第三段:Golang的面向对象

Go语言虽然是一种结构化的编程语言,但是也支持面向对象的编程。它通过struct来实现数据封装,通过method来实现行为的封装,并支持interface来实现多态的特性。Go语言中的面向对象有一些独特的特点,如没有class、没有继承和虚函数等,它使用composition和interface来实现类的功能。

package main

import "fmt"

type Person struct {
    name string
    age  int
}

func (p Person) SayHello() {
    fmt.Printf("My name is %v and I am %v years old\n", p.name, p.age)
}

func main() {
    var p1 Person = Person{"John", 25}
    p1.SayHello()
}

第四段:Golang的并发编程

Go语言支持并发编程,它使用goroutine来实现并发执行,使用channel来实现数据共享和通信。同步和互斥的机制也得到了很好的支持。通过并发编程,Go语言能够轻易地实现高并发、不阻塞的程序,支持分布式系统和分布式计算。

package main

import (
    "fmt"
    "sync"
)

func printInOrder(wg *sync.WaitGroup, id int, ch chan int) {
    defer wg.Done()
    num := <-ch
    fmt.Printf("Goroutine %v: %v\n", id, num)
    if id == 3 {
        close(ch)
    } else {
        ch <- num + 1
    }
}

func main() {
    var wg sync.WaitGroup
    ch := make(chan int, 1)
    ch <- 1
    for i := 1; i <= 3; i++ {
        wg.Add(1)
        go printInOrder(&wg, i, ch)
    }
    wg.Wait()
}