当前位置: 首页 > news >正文

[Go语言快速上手]初识Go语言

目录

一、什么是Go语言

二、第一段Go程序

1、Go语言结构

注意

2、Go基础语法

关键字

运算符优先级 

三、Go语言数据类型

示例

小结


一、什么是Go语言

        Go语言,通常被称为Golang,是一种静态类型、编译型的计算机编程语言。它由Google的Robert Griesemer、Rob Pike及Ken Thompson等设计,并于2009年正式发布。Go语言的设计目标是为了提高开发效率和运行效率,在处理并发性方面尤其出色,它内置了对并发的支持,使得编写高并发程序变得简单。

Go语言的特点包括:

  • 简洁性:语法清晰简洁,减少了代码中的冗余部分。
  • 性能:由于是编译型语言,其执行速度接近于传统的编译型语言如C或C++。
  • 并发支持:通过goroutines和channels机制简化了并发编程。
  • 标准库:提供了丰富的标准库,使得开发者可以快速构建网络服务和其他应用。
  • 工具链:拥有强大的工具链支持,例如用于依赖管理的"go mod"以及测试框架等。

与C++相比,Go语言的设计更加现代,简化了很多C++中复杂的特性,同时提供更好的开发体验和更高的生产率。C++是一种功能强大且灵活的语言,支持面向对象编程、泛型编程以及过程化编程,但是它的学习曲线较陡峭,且容易出现内存管理和类型安全方面的问题。

Python则是一种解释型的高级编程语言,以简洁明了的语法著称,非常适合快速开发以及作为脚本语言使用。Python广泛应用于科学计算、Web开发、数据分析等领域,而且拥有庞大的第三方库生态系统。相比于Python,Go语言在执行效率上要高得多,但在易用性和开发速度上可能不如Python。

Go语言介于C++提供的底层控制能力和Python的高级抽象之间,旨在提供一种平衡点,即保持高性能的同时也易于编写和维护。

二、第一段Go程序

对于Go语言的学习,推荐去菜鸟教程学习基本的使用(适用于有编程基础的同学)

1、Go语言结构

Go 语言的基础组成有以下几个部分:

  • 包声明
  • 引入包
  • 函数
  • 变量
  • 语句 & 表达式
  • 注释

第一段go程序

package main //package main 定义了包名import "fmt" //告诉 Go 编译器这个程序需要使用 fmt 包func main() { //main 函数是每一个可执行程序所必须包含的fmt.Println("hello world") //可以将字符串输出到控制台,并在最后自动增加换行字符fmt.Print("hello golang")
}

运行后在终端输出

注意

1.需要注意的是 { 不能单独放在一行,否则在运行时会产生错误

2.Go语言允许你在每一行的末尾省略分号,这与一些其他语言(如Java)不同。虽然Go编译器会自动插入分号,但良好的习惯还是应该保持每一行逻辑完整。

3.go语言import了一个包但是没有使用会报错,(如果使用IDE,在本地IDE中会自动删除没有使用的包,同理也会自动添加使用的包)

我们还可以使用 go build 命令来生成二进制文件

 

2、Go基础语法

Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号。(这些概念与其他编程语言类似)

在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ; 结尾,因为这些工作都将由 Go 编译器自动完成。

如果你打算将多个语句写在同一行,它们则必须使用 ; 

关键字

运算符优先级 

go中的运算符与C/C++中大差不差,下面是运算符优先级(由上至下代表优先级由高到低)

三、Go语言数据类型

Go 语言按类别有以下几种数据类型:

Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。

声明变量的一般形式是使用 var 关键字:

package main //package main 定义了包名
import "fmt"func main() { //main 函数是每一个可执行程序所必须包含的var a string = "hello "  //声明格式fmt.Print(a)var b = "world"   //自动类型推断fmt.Print(b)var c, d int= 1, 2 //一次声明多个变量fmt.Println(c, d)
}

如果不初始化默认零值

package mainimport "fmt"func main() {var i intvar f float64var b boolvar s stringfmt.Printf("%v %v %v %q\n", i, f, b, s)
}

 

示例

下面是一个使用示例:

package mainimport ("fmt"
)func main() {// 声明并初始化一个布尔型变量var isCompleted bool = true// 使用简短声明 :=isRunning := false// 输出布尔变量fmt.Println("isCompleted:", isCompleted)fmt.Println("isRunning:", isRunning)// 声明并初始化一个整型变量var count int = 10// 使用简短声明 :=age := 25// 输出整型变量fmt.Println("count:", count)fmt.Println("age:", age)// 声明并初始化一个浮点型变量var temperature float64 = 23.5// 使用简短声明 :=weight := 70.5// 输出浮点型变量fmt.Println("temperature:", temperature)fmt.Println("weight:", weight)// 声明并初始化一个字符串变量var name string = "Alice"// 使用简短声明 :=greeting := "Hello, World!"// 输出字符串变量fmt.Println("name:", name)fmt.Println("greeting:", greeting)// 对数字类型进行算术运算result := count + int(weight)fmt.Println("result of addition:", result)// 字符串拼接fullName := name + " " + "Smith"fmt.Println("fullName:", fullName)// 使用字符串格式化输出fmt.Printf("%s is %f years old.\n", name, float64(age))
}

小结

以上就是一些Go语言的简单使用,如果有其他语言编程基础的话很容易就能上手,因为他非常的简洁,Go语言的设计目标是在性能和生产力之间找到一个平衡点,从而创建一种适合大规模系统开发的语言。

尽管Go语言在某些方面受到了C++的影响,比如C风格的语法,但它并不是C++的超集,而是有选择性地吸取了C++的优点,并抛弃了一些复杂和难以掌握的部分。同时,Go语言的设计也考虑到了Python等现代语言的生产力优势,比如简洁的语法、强大的标准库等,但又避免了Python在性能上的劣势。

总的来说,Go语言试图融合C++的高效性和Python的易用性,创造了一种既适合系统级编程又能满足大规模服务端开发需求的语言。然而,它并不是这两种语言特性的简单叠加,而是在这两者之间寻找了一个新的平衡点。

http://www.lryc.cn/news/453521.html

相关文章:

  • 基于STM32的智能风扇控制系统设计
  • OpenCV 形态学相关函数详解及用法示例
  • Kafka学习笔记(三)Kafka分区和副本机制、自定义分区、消费者指定分区
  • 华为 HCIP-Datacom H12-821 题库 (31)
  • 占位,凑满减
  • SpringBoot校园资料平台:从零到一的构建过程
  • czx前端
  • Perforce演讲回顾(上):从UE项目Project Titan,看Helix Core在大型游戏开发中的版本控制与集成使用策略
  • 【含文档】基于Springboot+Andriod的成人教育APP(含源码+数据库+lw)
  • CentOS7系统配置Yum环境
  • pyqt打包成exe相关流程
  • 设计模式、系统设计 record part02
  • github双重验证(2FA)启用方法
  • 《Linux从小白到高手》理论篇:Linux的系统服务管理
  • SQL中如何进行 ‘’撤销‘’ 操作-详解
  • Hadoop之WordCount测试
  • Vue和axios零基础学习
  • STM32新建工程-基于库函数
  • matlab入门学习(二)矩阵、字符串、基本语句、函数
  • PC端微信小程序如何调试?
  • 点击按钮提示气泡信息(Toast)
  • 【易社保-注册安全分析报告】
  • 155. 最小栈
  • 用Manim实现高尔顿板(Galton Board)
  • OpenCV视频I/O(7)视频采集类VideoCapture之初始化视频捕获设备或打开一个视频文件函数open()的使用
  • vue3+vite@4+ts+elementplus创建项目详解
  • Python 从入门到实战34(实例2:绘制蟒蛇)
  • Visual Studio C# 处理和修复 WinRiver II 测量项目 MMT 文件错误
  • JAVA实现大写金额转小写金额
  • 如何使用ssm实现基于SSM的宠物服务平台的设计与实现+vue