首页 > 其他分享 >Golang 语言入门:基础语法与示例

Golang 语言入门:基础语法与示例

时间:2024-01-26 12:31:53浏览次数:26  
标签:入门 示例 fmt Golang Println func Go string 语言

引言

Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。自2009年推出以来,Go已经成为云计算、微服务、网络服务器等领域的热门选择。其设计哲学是简洁、快速和易于理解,这使得Go语言特别适合当今快速发展的软件行业。

Go语言的基本语法

变量与类型

在Go中,你可以使用var关键字来声明变量,也可以用:=来进行短变量声明。

var name string = "Gopher"
age := 10 // 短变量声明

Go语言是静态类型的,这意味着所有的变量都必须有一个明确的类型。Go语言基本的数据类型包括:

  • 整型(int, int8, int32, int64 等)
  • 浮点型(float32, float64
  • 布尔型(bool
  • 字符串(string

控制结构

Go语言的控制结构包括条件语句ifswitch,以及循环语句for

if age > 18 {
    fmt.Println("成年人")
} else {
    fmt.Println("未成年人")
}

for i := 0; i < 5; i++ {
    fmt.Println(i)
}

switch name {
case "Gopher":
    fmt.Println("是个Gopher")
default:
    fmt.Println("不是Gopher")
}

函数

函数在Go语言中通过func关键字定义。

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

指针

Go具有指针。指针保存了值的内存地址。

func main() {
    i := 1
    p := &i // 指向i
    fmt.Println(*p) // 通过指针读取i的值
    *p = 21         // 通过指针设置i的值
    fmt.Println(i)  // 查看i的新值
}

结构体与接口

结构体是字段的集合,而接口则是方法签名的集合。

type Person struct {
    Name string
    Age  int
}

type Greeter interface {
    Greet() string
}

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

并发

Go语言的并发是通过goroutineschannels实现的。goroutines是由Go运行时环境管理的轻量级线程。

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}

func main() {
    go say("world")
    say("hello")
}

示例:Hello World

最经典的程序示例是Hello World,以下是在Go语言中实现的方式。

package main

import "fmt"

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

要运行上述程序,你需要先安装Go语言环境,然后保存代码到一个.go文件中,通过命令行运行go run 文件名.go即可。

结语

这篇博文只是对Go语言的一个简单介绍,Go的魅力远不止于此。随着你深入学习,你将发现它在并发处理、性能优化和代码简洁性方面的巨大潜力。希望这篇文章能作为你的Go语言学习之旅的起点。

标签:入门,示例,fmt,Golang,Println,func,Go,string,语言
From: https://blog.51cto.com/u_16351957/9428350

相关文章

  • 机器学习从入门到放弃:卷积神经网络CNN(一)
    一、前言在上一篇中我们使用全连接网络,来构建我们的手写数字图片识别应用,取得了很好的效果。但是值得注意的是,在实验的最后,最后我们无论把LOSS优化到如何低,似乎都无法在测试数据集testdata中提高我们的识别准确度,你可以回头尝试全连接的网络连接,新增多几层layer,来尝试......
  • 【跟着ChatGPT学深度学习】ChatGPT带我入门深度学习
    【跟着ChatGPT学深度学习】ChatGPT带我入门深度学习【跟着ChatGPT学深度学习】ChatGPT带我入门深度学习【跟着ChatGPT学深度学习】第一弹,入门深度学习。本次ChatGPT老师共教我三个知识点,分别是深度学习基础、深度学习的学习资源和深度学习需要掌握的技能和知识。最后,ChatGPT老......
  • go-zero开发入门-初始化cache.ClusterConf示例
    cache.ClusterConf的定义如下://CacheConfisanaliasofClusterConf.typeCacheConf=ClusterConftype( //AClusterConfistheconfigofaredisclusterthatusedascache. ClusterConf[]NodeConf //ANodeConfistheconfigofaredisnodethatuseda......
  • go-carbon v2.3.7 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
    carbon是一个轻量级、语义化、对开发者友好的golang时间处理库,支持链式调用。目前已被awesome-go收录,如果您觉得不错,请给个star吧github.com/golang-module/carbongitee.com/golang-module/carbon安装使用Golang版本大于等于1.16//使用github库goget-ugithu......
  • Vue 3高级响应式数据探秘:原理、用法详解与实战示例!
     在Vue3中,数据的变化通过响应式系统来实现,该系统基于ES6的Proxy对象。Proxy对象允许拦截并自定义操作,因此Vue可以通过代理对象来实现对数据的监听和触发相应的操作。以下是Vue3中监测数据改变的原理、使用方法和步骤的详细描述,以及一个实例代码:原理:Vue3的响应式系统基于P......
  • WebAssembly入门笔记[2]:利用Memory传递数据
    利用灵活的“导入”和“导出”机制,WebAssembly与承载的JavaScript应用之间可以很便利地“互通有无”。《与JavaScript的交互》着重演示了如何利用函数的导入和导出实现功能的共享,接下来我们主要关注数据的传递或者共享。宗地来说,WebAssembly与宿主程序之间的数据传递主要有如下三......
  • kettle从入门到精通 第三十四课 kettle 错误处理
    1、我们在平常写应用程序的时候,需要主动捕获异常或者错误,不然程序有可能异常退出。同样kettle也支持异常或者错误处理,下图展示的是在批量插入数据的时候捕获异常,如唯一健冲突,死锁等,并将错误信息保存到表里面,方便后续邮件预警和排查问题。2、在需要异常处理的步骤上面右键,点击定......
  • Golang gRPC概述及入门示例
    1、概述1.1什么是gRPCRPC的全称是RemoteProcedureCall,远程过程调用。RPC是一种协议,它实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。而gRPC又是什么呢?用官方的话来说:A......
  • Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--快速入门
    Pdfium.Net.Free支持.NETFramework4.0.NETFramework4.5.NETStandard2.0可以和PdfiumViewer.Free共同使用预览pdf,也可以直接引用Pdfium.Net.Free操作pdf,解决部分.NetCore调用的问题,Pdfium.Net.Free封装了现有Pdfium的函数,实现了部分操作pdf的功能,部分功能等待后......
  • Stream流操作示例
    1privatestaticdoubleoneMoney;2privatestaticdoubletwoMoney;3privatestaticdoublesumMoney;45publicstaticvoidmain(String[]args){6List<Employee>list1=newArrayList<>();7list1.add(new......