go语言可以做什么?入门Go语言

简介: go语言可以做什么?入门Go语言

每一门语言配置好环境后的第一件事-----------向世界问候


本篇博客带大家公平的了解一下go语言相较其他语言的优势,以及go语言的一些特色


先打印一个hello world感受一下go语言的魅力


package main//每一个go文件都应该属于一个包,同一个包下的各函数、变量可以直接引用(不包只能调用大写字母开头的)
import (//导包
  "fmt"//标准的输入输出函数都在这里
  "os"
)
//在go语言中一般一行只放一句代码,末尾不用使用分号
func main(){
  //直接向终端进行输出
  fmt.Println("hello world")
  //向指定的输出流进行重定向(os.Stdout代表向终端进行输出,还可以是文件指针,http响应输出流......)
  fmt.Fprintln(os.Stdout, "hello world")
}


(1)go语言有以下特点(做出总结)


自动垃圾回收(不用再动态的开辟、释放内存了)


更丰富的类型(指针、接口、通道、切片+基础类型=十分丰富灵活的编程语言)


函数多返回值(支持一次返回多个返回值)


错误的处理(这个模块相对来说还比较脆弱)


匿名函数与闭包(这点属于go的特色)


类型和接口(空接口可以接受任意类型,…interface{}作为形式参数可以传入任意个实际参数)


并发编程(并发是go语言的一个强项,因为go使用的是用户线程,相对来说并发需要的资源不多)


反射(go语言是静态语言,可以使用反射对程序进行配置,但效率会有所下降)


(2)go语言做web后端相对其他语言的优势及劣势 。


go语言为静态语言,项目经过预处理、编译、汇编、连接成为exe可执行文件

然后经过简单部署,就大工告成。


①相较python这种边编译边执行的语言来说


go语言执行效率高(运行时执行效率高,但是一般肉眼感觉不出来)


语法难易程度不相上下(python语法十分简洁,go语言也不逊色)


依据python的简洁语法,其更适合做数据分析、深度学习等类的工作


②相较java这一元老级别语言来说,go语言设计的时候考虑到了高并发


go语言开启同样并发量使用的资源要比java小的多(根本原因是设计语言使用的机制不同)


执行效率虽没有java快,但是仅仅差一丢丢(并发的优势完全可以弥补)


go web部署服务器极其简单,java web 项目往往需要寄托在tomcat等服务器上


Go语言原生的http包十分优秀,java有许多成熟的框架


总的来说这两个语言效率不相上下,go应该更适合未来的需求。java目前占有更大的市场。


两者都适合用来做web后端


③相较于c/c++祖师级别语言而言


go语言语法简洁度相对c/c++有大大的优化


go语言的效率当时设计的时候就是奔着赶上c语言去的,虽然没有赶上,但在目前处的高级语言内也算是名列前茅。


go语言有许多功能丰富的库,使用起来也比较方便。


技术ok c/c++无所不能(万岁!!!)


④相较于javascript而言


这两个就不进行比较了吧,一个前端语言一个后端语言


两者结合天下无敌(应该劝大家的是目前前后端分离,两个语言的工程师都应该写验证或者测试函数,或约定一方进行书写,避免非法分子有可乘之机)


(3)go语言适合做的事


理论来说也是无所不能,但是为了节约开发成本总的来说更适合做以下几件事


go web后端


区块链


游戏后端


一块加油一块努力,一起 go go go !!!


目录
相关文章
|
1天前
|
安全 Go 开发者
Golang深入浅出之-Go语言并发编程面试:Goroutine简介与创建
【4月更文挑战第22天】Go语言的Goroutine是其并发模型的核心,是一种轻量级线程,能低成本创建和销毁,支持并发和并行执行。创建Goroutine使用`go`关键字,如`go sayHello("Alice")`。常见问题包括忘记使用`go`关键字、不正确处理通道同步和关闭、以及Goroutine泄漏。解决方法包括确保使用`go`启动函数、在发送完数据后关闭通道、设置Goroutine退出条件。理解并掌握这些能帮助开发者编写高效、安全的并发程序。
10 1
|
1天前
|
人工智能 Go 调度
掌握Go并发:Go语言并发编程深度解析
掌握Go并发:Go语言并发编程深度解析
|
1天前
|
SQL 关系型数据库 MySQL
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
Golang数据库编程详解 | 深入浅出Go语言原生数据库编程
|
2天前
|
Go 开发者
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
【4月更文挑战第21天】本文介绍了Go语言中的流程控制语句,包括`if`、`switch`和`for`循环。`if`语句支持简洁的语法和初始化语句,但需注意比较运算符的使用。`switch`语句提供多分支匹配,可省略`break`,同时支持不带表达式的形式。`for`循环有多种形式,如基本循环和`for-range`遍历,遍历时修改原集合可能导致未定义行为。理解并避免易错点能提高代码质量和稳定性。通过实践代码示例,可以更好地掌握Go语言的流程控制。
11 3
Golang深入浅出之-Go语言流程控制:if、switch、for循环详解
|
2天前
|
Go
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
【4月更文挑战第21天】Go语言函数是代码组织的基本单元,用于封装可重用逻辑。本文介绍了函数定义(包括基本形式、命名、参数列表和多返回值)、调用以及匿名函数与闭包。在函数定义时,注意参数命名和注释,避免参数顺序混淆。在调用时,要检查并处理多返回值中的错误。理解闭包原理,小心处理外部变量引用,以提升代码质量和可维护性。通过实践和示例,能更好地掌握Go语言函数。
16 1
Golang深入浅出之-Go语言函数基础:定义、调用与多返回值
|
3天前
|
程序员 Go API
【Go语言快速上手(二)】 分支与循环&函数讲解
【Go语言快速上手(二)】 分支与循环&函数讲解
|
3天前
|
Go
Golang深入浅出之-Go语言基础语法:变量声明与赋值
【4月更文挑战第20天】本文介绍了Go语言中变量声明与赋值的基础知识,包括使用`var`关键字和简短声明`:=`的方式,以及多变量声明与赋值。强调了变量作用域、遮蔽、初始化与零值的重要性,并提醒读者注意类型推断时的一致性。了解这些概念有助于避免常见错误,提高编程技能和面试表现。
18 0
|
3天前
|
编译器 Go 开发者
Go语言入门|包、关键字和标识符
Go语言入门|包、关键字和标识符
22 0
【Go语言入门100题】026 I Love GPLT (5 分) Go语言 | Golang
L1-026 I Love GPLT (5 分) Go语言|Golang 这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— “I Love GPLT”——竖着输出就可以了。 所谓“竖着输出”,是指每个字符占一行(包括空格),即每行只能有1个字符和回车。
491 0
|
存储 Go
【Go语言入门100题】023 输出GPLT (20 分) Go语言 | Golang
L1-023 输出GPLT (20 分) Go语言|Golang 给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。 下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。
140 0