匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Golang极简入门指南,上手即可开发

Golang极简入门指南,上手即可开发

Golang是近年来越来越受欢迎的一种编程语言,它结合了C语言的高效性和Python语言的简洁性。本篇文章将为大家介绍Golang的基本语法和常见用法,让大家能够快速掌握这门语言。

一、基本语法

1. 变量声明:

var 变量名 类型

对于常见的数据类型,例如int、float、string等,可以使用简写方式:

var 变量名 = 值

例如:

var message string = "Hello World"
var count = 10

2. 函数定义:

func 函数名(参数名 参数类型) 返回值类型 {
   函数体
}

例如:

func add(a int, b int) int {
   return a + b
}

3. 控制流:

if-else语句:

if 条件 {
   // 条件为真时执行
} else {
   // 条件为假时执行
}

for循环:

for i := 0; i < n; i++ {
   // 循环体
}

switch语句:

switch 变量 {
   case 条件1:
       // 条件1成立时执行
   case 条件2:
       // 条件2成立时执行
   default:
       // 以上条件都不成立时执行
}

二、常见用法

1. 并发编程

Golang语言非常擅长处理并发编程,它提供了goroutine和channel两个关键词来支持并发编程。

goroutine可以看做是一种轻量级的线程,它可以以非常高效的方式运行在单个CPU上。

channel是Golang语言中的数据结构,它可以用来在goroutine之间传递数据。

下面是一个实例,演示了如何使用goroutine和channel实现并发编程:

package main

import (
    "fmt"
    "time"
)

func worker(id int, jobs <-chan int, results chan<- int) {
    for j := range jobs {
        fmt.Println("worker", id, "processing job", j)
        time.Sleep(time.Second)
        results <- j * 2
    }
}

func main() {
    jobs := make(chan int, 100)
    results := make(chan int, 100)

    for w := 1; w <= 3; w++ {
        go worker(w, jobs, results)
    }

    for j := 1; j <= 9; j++ {
        jobs <- j
    }
    close(jobs)

    for a := 1; a <= 9; a++ {
        <-results
    }
}

2. Web编程

Golang也被广泛应用于Web编程,在这个领域中,它的优势在于高效的处理和响应HTTP请求。

Golang提供了net/http库来处理HTTP请求和响应,下面是一个示例程序,演示了如何使用net/http库搭建一个简单的Web服务器:

package main

import (
    "fmt"
    "log"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
}

func main() {
    http.HandleFunc("/", handler)
    log.Fatal(http.ListenAndServe(":8080", nil))
}

3. 数据库编程

Golang也提供了多种数据库驱动程序,可以方便地操作各种类型的数据库。

下面是一个MySQL数据库的示例程序,演示了如何使用Go-MySQL-Driver驱动程序连接MySQL数据库,执行查询和插入操作:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    // 打开数据库连接
    db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/test?charset=utf8")
    if err != nil {
        panic(err.Error())
    }

    // 查询数据
    rows, err := db.Query("SELECT name FROM users WHERE age=?", 18)
    if err != nil {
        panic(err.Error())
    }
    for rows.Next() {
        var name string
        err = rows.Scan(&name)
        if err != nil {
            panic(err.Error())
        }
        fmt.Println(name)
    }

    // 插入数据
    stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)")
    if err != nil {
        panic(err.Error())
    }
    res, err := stmt.Exec("Tom", 20)
    if err != nil {
        panic(err.Error())
    }
    id, err := res.LastInsertId()
    if err != nil {
        panic(err.Error())
    }
    fmt.Println(id)

    db.Close()
}

三、总结

通过本篇文章,我们了解了Golang的基本语法和常见用法,它的高效性、并发性和简洁性使得它成为了快速开发高性能Web应用程序的首选语言。如果您正在寻找一门新的编程语言,Golang就是一个值得尝试的选择。