首页 > 其他分享 >Golang静态类型、编译型的语言学习

Golang静态类型、编译型的语言学习

时间:2024-01-18 17:48:22浏览次数:22  
标签:语言 静态 编程 Golang 编译 go Go main

golang属于一种静态类型、编译型的语言,它的设计目标是提供一种简单、高效、可靠的编程语言,适用于构建大型软件系统。Go语言的设计哲学是简洁、直接、易于理解和使用,Go语言支持并发编程,引入了goroutine和channel的概念,使得并发编程更加简单和高效,无论是用于Web开发、服务器编程、系统编程还是分布式系统,Go语言都有着广泛的应用和发展景。

Go(又称为Golang)是一种开源的编程语言,由Google开发并于2009年首次发布。Go是一种静态类型、编译型的语言,它的设计目标是提供一种简单、高效、可靠的编程语言,适用于构建大型软件系统。

Go语言的设计哲学是简洁、直接、易于理解和使用。它借鉴了C语言的语法和部分特性,但去掉了一些复杂的特性和语法,使得代码更加清晰和易读。与C++和Java等语言相比,Go语言的语法更加简单,学习曲线更低。

Go语言支持并发编程,它引入了goroutine和channel的概念,使得并发编程更加简单和高效。Goroutine是一种轻量级的线程,可以并发执行函数或方法,而channel是用于不同goroutine之间进行通信和数据传递的机制。通过goroutine和channel,开发者可以很方便地实现并发控制和协作。

Go语言还内置了垃圾回收机制,使得内存管理更加简单和高效。开发者不需要手动管理内存,可以专注于业务逻辑的实现,减少了内存泄漏和指针错误的可能性。

Go语言的标准库非常丰富,提供了大量的包和工具,包括网络编程、文件操作、数据解析、加密算法、并发控制等等。这些标准库不仅功能强大,而且文档详细,使用起来非常方便。

Go语言还具有良好的性能和可扩展性。它的编译速度非常快,生成的可执行文件体积小,运行效率高。Go语言还支持交叉编译,可以方便地在不同的操作系统和架构上进行开发和部署。

总结

Go是一种现代化的编程语言,它继承了C语言的速度和效率,并加入了更多的特性和功能,使得开发者能够更容易地构建高性能、可靠的软件系统。无论是用于Web开发、服务器编程、系统编程还是分布式系统,Go语言都有着广泛的应用和发展景。

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易

Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。
中文网在线标准库文档

1. go 语言特点
天生支持并发
语法简单,容易上手
内置runtime,支持垃圾回收
可直接编译成机器码,不依赖其他库
丰富的便准库
可跨平台编译
部署维护成本低
2. go 语言应用领域
服务器编程
开发云平台
区块链
分布式系统
网络编程
3. 使用 go 语言的公司有哪些
Google
k8s

Facebook
facebookgo

腾讯
蓝鲸平台
容器技术

百度
运维项目BFE

京东
消息推送系统、云存储、京东商城

小米
运维监控系统、小米互娱、小米商城、小米视频、小米生态链

360
日志搜索系统Poseidon

二、安装 golang
下载开发包及工具,提取码:ad1z

1. golang 下载安装

 

2. 配置环境变量

 

 

 

 

使用cmd查看配置是否成功


三、golang 开发工具
1. 安装 VSCode

 

 

 

使用vscode打开创建的项目文件并选择信任

 

2. 下载所需插件
下载go扩展插件


下载Code Runner插件


安装常用工具包


可以看到这里会下载失败,因为是外网的资源,所以需要进行配置

 

添加代理地址

配置 GOPROXY 环境变量
GOPROXY = "https://proxy.golang.com.cn,direct"

 

关闭module功能

GO111MODULE=off
无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。

 

四、第一个 golang 应用
//主包,可执行文件所在包
package main

//导入包
import "fmt"

//主函数,入口函数
func main() {
//打印输出
fmt.Println("hello go")
}

//输出结果
hello go

1. main 包的含义
在 Go 语言里,命名为 main 的包具有特殊的含义。Go 语言的编译程序会试图把这种名字的包编译为二进制可执行文件。
所有用 Go 语言编译的可执行程序都必须有一个名叫 main 的包
一个可执行程序有且仅有一个 main 包
当编译器发现某个包的名字为 main 时,它一定也会发现名为 main() 的函数,否则不会创建可执行文件
main() 函数是程序的入口,所以,如果没有这个函数,程序就没有办法开始执行
程序编译时,会使用声明 main 包的代码所在的目录的目录名作为二进制可执行文件的文件名

 

参考:https://www.cnblogs.com/mrwhite2020/p/16607452.html

https://blog.csdn.net/Javachichi/article/details/131936213

 

标签:语言,静态,编程,Golang,编译,go,Go,main
From: https://www.cnblogs.com/klb561/p/17973006

相关文章

  • ubuntu编译opencv:cmake时下载超时及找不到源的问题
    1ade下载超时查看CMakeDownlodLog.txt找下载地址和目标路径(包含md5值),按下载地址下载文件,放到你的opencv-4.7.0/.cache/ade下,记得把文件改名改成包含md5值的。其他缺失文件也可以一样处理。2即使下载完依然cmake报错--ConfiguringdoneCMakeErroratmodules/gapi/cmake/Do......
  • idea 项目编译内存溢出解决配置
    https://blog.csdn.net/malin970824/article/details/89843478 以下几种方式都可尝试下:1.在idea安装的bin目录修改配置文件 -Xms512m-Xmx2024m-Xss4M-XX:MaxPermSize=2024m 2.修改settings 3.修改tomcat-server-Xms512m-Xmx2024m-Xss4M-XX:PermSize=512M-XX:......
  • QT之静态函数发送信号
    一、简介由于博主本人是初学者对QT的机制不了解,所以遇到了一个比较大的坑,特此记录一下。我遇到的问题是无法在静态函数中向另外一个类发送信号。解决办法:先将信号发送给同类中的普通函数,然后在从普通函数中发送信号给外部类。二、C与C++中static的用法这里不是介绍QT静态函数信......
  • Golang之文件系统事件监听
    Golang之文件系统事件监听基本介绍文件系统事件是指文件系统相关的各种操作和状态变化,当一个应用层的进程操作文件或目录时,会触发systemcall,内核的notification子系统可以守在那里,把该进程对文件的操作上报给应用层的监听进程。这些事件可以包括文件和目录的创建、修改、删除和......
  • Golang中的工厂模式:灵活选择存储方式实现文件存储
    Golang中的工厂模式:灵活选择存储方式实现文件存储原创 沙蒿 程序员的碎碎念 2024-01-0508:20 发表于广东 听全文 引言在现代软件开发中,文件存储是一个常见的需求,而选择合适的存储方式对于系统的可扩展性和性能至关重要。本文将介绍如何使用工厂模式在Golang中实......
  • 极智一周 | 谈谈AI发展、训练算力、推理算力、AI编译框架、Copilot键 And so on
    欢迎关注我的公众号[极智视界],获取我的更多技术分享大家好,我是极智视界,带来本周的[极智一周],关键词:谈谈AI发展、训练算力、推理算力、AI编译框架、Copilot键Andsoon。极智视界本周热点文章回顾(1)谈谈AI发展系列本周带来三篇"谈谈AI发展"分享,包括AI训练算力、AI推理......
  • mac m1 golang 运行go项目没法dbg解决
    1.首先终端看 uname-m如果是显示armd的话就是m12.go版本需要安装arm64版本(macm1) 3.golang编辑器也要安装m1版本的 4.dbg成功 ......
  • C#实例方法和静态方法有区别吗?各自的优缺点有哪些?
     实例方法和静态方法之间有几个关键的区别:1.实例方法:关联对象: 实例方法是与对象实例相关联的,必须通过实例来调用。this关键字: 实例方法中可以使用 this 关键字引用当前实例。访问实例成员: 实例方法可以直接访问和修改实例的字段、属性和其他成员。生命周期: 实例......
  • docker 创建编译容器 rk3588
    创建ubuntu指定名称创建容器dockerrun-t-i-d-v/opt:/opt--nameubuntu2004ubuntu:20.04/bin/bash修改ustc镜像源sed-i's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g'/etc/apt/sources.listsed-i's/security.ubuntu.com/mirrors.ustc.edu.cn/g'......
  • Golang nil != nil
    先从一段代码看起,下面这个代码是将传入的对象转换成JSONstring并返回回去,其中,如果判断i==nil时,会返回""。funcToJSONString(iinterface{})string{ifi==nil{return""}bytes,_:=json.Marshal(i)returnstring(bytes)}这段代码初看并没有......