golang语言特征

第一个go程序

//1)go语言以包作为管理单位

//2)每个文件必须先声明包

//3)程序必须有一个main包

 

package main

 

import "fmt"

 

func main(){//左括号必须和函数名同行

//调用函数,大部分都需要导入包

//hello go打印到屏幕会自动换行

fmt.Println("hello go")

}

 

golang语言特性

1.垃圾回收

a.内存自动回收,不需要开发人员管理内存

b 只需要new分配内存,不需要释放

2.天然并发

a 从语言层面支持并发,非常简单

b goroute,轻量级线程,创建成千上万个goroute成为可能

c 基于CSP模型

例:

package main

import

"fmt"

 

func add(a int,b int)int{

    var sum int

    sum = a + b

    return sum

}

func test(a int)int{

    fmt.Println(a)

    return 0

}

func main(){    

    c :=add(100,200)//自动定义变量

    for i:=0;i<100;i++{

        go test(i)//并发执行,相当于fork(),所以打印的数字是乱的

    }

 

    fmt.Println("c=",c)

}

结果;

 

3. channel

a 管道,类似unix/linux中的pipe

b 多个goroute之间通过channel进行通信

c 支持任何类型

例:

package main

import(

    "fmt"

)

func main(){

    pipe := make(chan int,3)//定义一个大小为3的管道,管道类似于队列,先进先出,一头进一头出

    pipe <- 1//向管道中添加元素,其中的符号像一个箭头

    pipe <- 2

    pipe <- 3

    var b int

    b =<- pipe//取出管道中的一个元素,由先进先出,取出的元素为1

    pipe <- 4//将4放入管道

    fmt.Println(b)

    fmt.Println(len(pipe))//打印管道的长度

}

附加:

在终端中使用gofmt -w [文件名]可使代码对齐

例:

func main() {

    pipe := make(chan int, 3) //定义一个大小为3的管道,管道类似于队列,先进先出,一头进一头出

    pipe <- 1 //向管道中添加元素,其中的符号像一个箭头

     pipe <- 2

     pipe <- 3

    var b int

     b = <-pipe //取出管道中的一个元素,由先进先出,取出的元素为1

    pipe <- 4 //将4放入管道

     fmt.Println(b)

    fmt.Println(len(pipe)) //打印管道的长度

}

在终端使用命令后:

 

 

### Golang编程语言介绍 Golang(Go语言)是一种由Google开发的开源编程语言,旨在提供一种简单、高效且可靠的编程体验。Go语言的设计目标是提高软件开发的效率和可维护性,同时支持现代分布式系统的需求[^1]。它具有以下特点: - **简洁性**:Go语言的设计强调代码的简洁性和可读性,减少了不必要的复杂性。 - **高效性**:Go语言提供了内置的并发支持,通过goroutines和channels实现高效的并发编程[^2]。 - **安全性**:Go语言在设计时考虑了内存安全问题,避免了许多常见的编程错误,例如空指针引用和缓冲区溢出。 - **丰富的标准库**:Go语言自带了一个强大的标准库,涵盖了从网络编程到数据处理的各种功能[^1]。 ### Golang的基本使用 #### 1. 安装与环境配置 用户需要首先安装Go语言的开发环境。可以从官方网站下载适合操作系统的版本,并按照说明进行安装。安装完成后,可以通过以下命令验证安装是否成功: ```bash go version ``` #### 2. 创建一个简单的Go程序 以下是一个简单的Go程序示例,展示了如何打印“Hello, Golang!”到控制台: ```go package main import "fmt" func main() { fmt.Println("Hello, Golang!") } ``` 将上述代码保存为`main.go`文件,并通过以下命令运行: ```bash go run main.go ``` #### 3. 使用Docker部署Go应用 如果用户希望快速部署Go应用程序,可以使用Docker容器技术。以下是一个简单的Dockerfile示例,用于构建和运行Go应用程序: ```dockerfile # 使用官方的Go镜像作为基础镜像 FROM golang:1.19 # 设置工作目录 WORKDIR /app # 将本地代码复制到容器中 COPY . . # 构建Go应用程序 RUN go build -o main . # 暴露端口 EXPOSE 8080 # 运行应用程序 CMD ["./main"] ``` 构建并运行Docker容器的命令如下: ```bash docker build -t my-go-app . docker run -p 8080:8080 my-go-app ``` #### 4. 日志与分布式追踪 在实际项目中,日志记录和分布式追踪是非常重要的。Go语言社区提供了多种日志框架和分布式追踪工具,例如Zap、Logrus和Jaeger等[^4]。以下是使用Logrus记录日志的示例: ```go package main import ( "github.com/sirupsen/logrus" ) func main() { log := logrus.New() log.Info("This is an info message") log.Error("This is an error message") } ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值