【Go语言快速上手(一)】 初识Go语言

这篇具有很好参考价值的文章主要介绍了【Go语言快速上手(一)】 初识Go语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

💓博主CSDN主页:杭电码农-NEO💓

⏩专栏分类:Go语言专栏⏪

🚚代码仓库:NEO的学习日记🚚

🌹关注我🫵带你学习更多Go语言知识
  🔝🔝


【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端

1. 前言

本Go语言专栏适合有一定编程基础的同学来学习(IT小白建议先打好基础),本专栏中对于Go语言的学习重在快速上手,期间可能会将go语言的语法与C++或Java的进行对比

本章重点:

本篇文章会着重讲解,为什么掌握了C++或Java后,还需要学习Go?Go中有哪些数据类型?是怎样定义的?Go语言的基本语法和C++有什么区别?Go语言的标识符遵循什么规则?

本篇文章默认大家已经安装好了GO语言的环境,如果你还没有安装好,可以常考这篇文章(或者问GPT):

GO的安装与环境配置

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端


2. Go语言简介(为什么要学它?)

Go语言又被称为golang,它的创始人有三位,每一位都是重量级人物,那么go语言它有下面几大特性:

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端

不知道你也没有发现,Go语言的这些优点,恰恰对应了C++的缺点,好像Go语言的问世就是为了来替代C++的.在后面的Go语言学习中,你也会看见一些C++的身影,如果你了解C++11或C++14的语法新特性,你也会发现C++已经慢慢变成了我们不熟悉的样子(编码更简单了)

为什么要学习Go语言?

这里我将给出三个原因:

  1. 互联网的大中小厂都在转Go语言

像大家熟知的字节跳动,b站,百度的后端现在大部分都使用go进行开发,而我实习的鹅厂也是如此,现在鹅厂QQ部门的新代码全部都是go实现的,已经不见当年C++辉煌的身影了.所以学习GO语言的一大原因就是互联网企业对语言有大变革,所以掌握Go语言在校招中会很加分.

  1. 使用Go的效率更高

正如上面Go语言的特定一样,Go语言在实际的开发中,代码更简洁,开发效率更高,并且不会有类似于C++的内存泄漏问题.当今时代各种网络服务,网络软件层出不穷,开发效率会直接影响到一个公司是否能存活.并且Go语言的学习路线很平滑,不像C++一样难学(毕竟C++的创始人都没精通C++),所以go语言可以大众化,你不需要像C++工程师一样掌握很多底层的细节才能开发,相对于GO语言给程序员降低了门槛

  1. 上图

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端

有句话说得好,叫做面向薪资编程
这就是学习GO最好的理由!!!


3. Go语言的第一段程序及解释

话不多说,直接上代码:

package main //声明这个文件所属的包,每一个go文件必须有归属的包
import "fmt"  //引入程序中要用的包(类似于C的包含头文件,使用库函数)
func main(){ //main函数是程序的入口,和C一样
	fmt.Println("hello golang")
	fmt.Println("hello world")
	fmt.Println("hello tencent")
}

对代码的解释:

首先是第一行,声明这个文件所属的包,现在只需要记住,放main函数的文件,就使用package main. 第二行的import就类似于C的包含头文件,由于go语言的打印函数Println属于"fmt"这个包,所以需要先引入这个包,然后main函数内就执行打印语句

需要注意的点:

  1. GO语言的语句结尾会自动加分号(不用显示写)
  2. 若import了一个包,但没使用包中的方法,会报错.同理,定义一个并且后没有使用它,也会报错
  3. Printfln函数会自动给我们换行
  4. go语言的花括号{}只能像上面这样写(这也是使用go语言开发比较规范的原因之一)

示范案例:

func main(){ //正确
	
}
func main()//报错
{
	
}

if(x==1){//正确
...
}

if(x==1)//报错
{
...
}

4. 变量以及数据类型

先来看看go都有哪些数据类型:

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端

本篇文章先介绍前五个


4.1 整型和浮点型

在此之前,需要知道go是怎样定义变量的:

//第一种,完整写法
var 变量名 变量类型 = 期望给变量的值
//比如:
var age int = 18
----------------------
//第二种,自动类型推导
var 变量名 = 期望给变量的值
变量名 := 期望给变量的值
//比如:
var height = 180 //系统会自动推导变量height的类型是int
grade := 95.5//自动推导为浮点型 

当然在定义变量时也可以不用赋初始值

整型和浮点型和C的几乎是一样的,int8,int16就代表这个变量只占8/16个比特位,除此之外,还能一次性定义多个变量,并且变量间进行赋值时,必须是相同的类型,否则会报错,实例如下:

var(
	age int = 18
	name string //字符串类型
	grade float32
)
var age,name,grade = 18,"NEO",7.8

grade = age //类型不匹配,报错
var age1 int = age //类型匹配,正常

整型和浮点型不初始化时,默认值都是0


4.2 字符串和布尔类型

使用byte来保存一个字符类型,而byte实际上就是uint8的别名,byte类型只能表示ASCII字符集中的字符(256个,刚好对的上uint8类型的范围),对于非ASCII字符(如中文或其他Unicode字符),应该使用rune类型

var ch rune = 'a'
fmt.Println(a)
fmt.Printf("a的值为: %c",a)

并且我们可以发现,直接使用Printfln打印a时,会打印出它的ASCII值,而不是a字符本身,所以想打出a字符本身可以使用Printf函数,使用方法和C的类似

字符串类型就是string

go语言中的string类型是不能被修改的,比如定义一个string类型变量: var str string = “abcd”,然后你修改str的第一个元素: str[0] = “x”,此时会直接报错.除此之外,string类型可以使用+,+=等运算符,对于+,+=而言,string变量会新开辟一份空间,然后再拷贝原数据,增加新数据

var str string = "abcdef"
str[0] = 'x"//会报错
str += "123456"

再一个,string类型有很多其他功能
在strconv包中,字符串转其他类型:

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端

package main
import (
	"fmt"
	"strconv"
)
func main() {
	var s2 string = "true"
	var b bool
	b, _ = strconv.ParseBool(s2)
	fmt.Println(b)
}

可以发现,parse系列函数有两个返回值,一个是要转换的类型,如bool,还有一个就是错误类型err,如果你不想接收第二个返回值,可以使用下划线_来忽略它

布尔类型

Go语言的布尔类型用true和false表示
和C的几乎一样,所以就不过多阐述.

string类型变量的默认值是空串""
布尔类型变量的默认值是false


4.3 指针类型

go语言中的指针有一个特性,那就是它不能用来做运算,这也是go语言比C好学,且安全的原因之一,那么指针类型有以下几个特征:

  • 可以通过指针改变指向的值
  • 指针变量的不可以不匹配(int类型指针指向float类型变量)
  • 指针变量接收的一定是地址
var age int = 18
var ptr *int = &age
var pptr **int = &ptr
*ptr = 10
**pptr = 20

指针的使用也和C是一样的


5. Go语言中的标识符

首先,标识符就是指,变量,方法等
标识符有以下特征:

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端

当然,GO语言中的标识符还有自己的一套起名规则.像业内常用的驼峰命名法,比如: QuickSort,在go语言中可不能轻易使用.因为GO语言中的变量或函数名的第一个字母大写,代表这个变量或函数可以被其他包调用(类似于C++的使用其他.cpp中的函数).而变量或函数名的第一个字符小写,代表此变量或函数只能在本包中使用(包可以理解为这个.go文件)


除此之外,go中还有一些关键字和运算符以其优先级,和C语言的大差不差,可以先了解一下:

【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端
【Go语言快速上手(一)】 初识Go语言,Go语言专栏,golang,开发语言,后端


6. 总结以及拓展

其实通过这篇文章的学习,我们已经能窥探到Go语言的简洁性了,并且学起来非常好上手,毕竟它很多内容其实都沿用C/C++的.而且越往后学我们越会发现,语言真的都是互通的,GO中有一些好用的语法,可能在C++11或C++17都被更新到C++里面去了,Java也是一样,可以在GO语言中看见其他语言的影子文章来源地址https://www.toymoban.com/news/detail-853969.html


🔎 下期预告:控制流程以及函数 🔍

到了这里,关于【Go语言快速上手(一)】 初识Go语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Golang】三分钟让你快速了解Go语言&为什么我们需要Go语言?

    博主简介: 努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。 博主主页: @是瑶瑶子啦 所属专栏: Go语言核心编程 近期目标: 写好专栏的每一篇文章 Go 语言从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项目,即相关

    2023年04月21日
    浏览(62)
  • 【Golang】一篇文章带你快速了解Go语言&为什么你要学习Go语言

    目录 1. 为什么互联网世界需要Go语言 1.1 硬件限制:摩尔定律已然失效  1.2 Go语言为并发而生 1.3 Go性能强悍 1.4 Go语言简单易学 1.4.1 语法简洁 1.4.2 代码风格统一 1.4.3开发效率高  2.Go语言的诞生与发展 2.1什么是Go语言   2.2 Go语言的诞生 2.3 Go Gopher——Go语言的吉祥物 3. 为什么

    2024年02月04日
    浏览(65)
  • 快速搭建一个go语言web后端服务脚手架

    快速搭建一个go语言web后端服务脚手架 源码:https://github.com/weloe/go-web-demo web框架使用gin,数据操作使用gorm,访问控制使用casbin 首先添加一下自定义的middleware recover_control.go ,统一处理panic error返回的信息 access_control.go 使用casbin进行访问控制的中间件 reader.go 读取yaml配置文件

    2023年04月12日
    浏览(71)
  • kotlin基础--快速上手kotlin语言开发

    1.1 变量 var表示可变变量,val表示不可变变量,注意并不是常量。变量名写在前面,类型写在后面,编译器如果能推断出你的类型,那么类型是不用声明的 。 编译器自动推断类型。 空安全类型编译器报错 如果还是想给赋初始化值的话 注意:String和String?是两个完全不同的类

    2024年02月15日
    浏览(53)
  • 【Golang】go编程语言适合哪些项目开发?

    前言 在当今数字化时代,软件开发已成为各行各业的核心需求之一。 而选择适合的编程语言对于项目的成功开发至关重要。 本文将重点探讨Go编程语言适合哪些项目开发,以帮助读者在选择合适的编程语言时做出明智的决策。 Go 编程语言适合哪些项目开发? Go是由Google开发

    2024年02月04日
    浏览(80)
  • 【Golang】VsCode下开发Go语言的环境配置(超详细图文详解)

    📓推荐网站(不断完善中):个人博客 📌个人主页:个人主页 👉相关专栏:CSDN专栏、个人专栏 🏝立志赚钱,干活想躺,瞎分享的摸鱼工程师一枚 ​ 话说在前,Go语言的编码方式是 UTF-8 ,理论上你直接使用文本进行编辑也是可以的,当然为了提升我们的开发效率我们还是需

    2024年02月07日
    浏览(85)
  • 零基础快速上手HarmonyOS ArkTS开发1---运行Hello World、ArkTS开发语言介绍

    在华为开发者大会2023年8月4日(HDC.Together)大会上,HarmonyOS 4正式发布,其实在2021年那会学习了一点鸿蒙的开发: 不过因为现在的鸿蒙手机完全兼容Android应用,所以学习动力也不是很足,一直就搁置了,直到今年华为官方出了这么一则消息才让我对于学习它有一种紧迫感了,如

    2024年02月05日
    浏览(50)
  • PandaX : Go语言企业级 IoT 物联网平台快速开发框架

    PandaX  是一个基于前后端分离架构开发的开源企业级物联网平台低代码开发基座,后端系统采用 Go 语言和前端基于 VUE3 开发,支持设备接入、设备管控,规则链引擎,云组态,可视化大屏,报表设计器,表单设计器,代码生成器等功能,帮助你快速建立企业 IoT 物联网平台相

    2024年02月06日
    浏览(59)
  • fabric-contract-api-go快速上手

    hi,好久没有更新Fabric相关文章,今天给大家带来fabric-contract-api-go快速上手,相较于原文省略较多,希望深入理解的小伙伴可以点原文学习。 背景 Fabric提供了大量的API来开发智能合约,支持 Go, Node.js, 和Java。本文对fabric-contract-api-go进行简单梳理,可以使读者快速上手。 原文

    2024年02月19日
    浏览(37)
  • 【Java转Go】快速上手学习笔记(四)之基础篇三

    go往期文章笔记: 【Java转Go】快速上手学习笔记(一)之环境安装篇 【Java转Go】快速上手学习笔记(二)之基础篇一 【Java转Go】快速上手学习笔记(三)之基础篇二 这篇主要是泛型、接口、反射、协程、管道、文件操作的笔记,因为我的笔记都是按照视频说的来记的,可能

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包