Go 语言 入门 基于 GoLand 2023.1 创建第一个Go程序

news2024/11/15 13:29:41

文章目录

  • Go 语言 入门
    • go 语言是什么?
    • go 入门 需要 学习 什么?
    • Go 语言有 那些优势?
    • Go 语言 与 Java 语言 对比
    • Go 语言 与Python 语言 对比
    • Go 语言 基于 GoLand 创建第一个程序
      • 1. 打开 GoLand
      • 2.选择 new
      • 3. 选择SDK版本
      • 4. 输入项目名称,点击 cteate
      • 项目创建完成
    • 下一步,创建一个 Go file
  • 结语

Go 语言 入门

go 语言是什么?

Go语言(又称为Golang)是一种开源的编程语言,由Google开发并于2009年首次亮相。它是一种静态类型、编译型的语言,拥有自动垃圾回收机制和强大的并发编程支持。

Go语言被设计成简洁、易于学习和使用,同时具备高效、可靠和可扩展的特性。它的语法风格类似于C语言,但是去掉了许多C语言中的复杂特性,如指针和内存管理。

Go语言可以用于编写各种类型的应用程序,包括服务器端应用程序、网络应用程序、云平台应用程序、操作系统和系统工具等。它也被广泛用于大型互联网公司和其他组织的内部开发中,例如Google、Uber、Dropbox和Docker等。

go 入门 需要 学习 什么?

  1. Go 语言基础:包括语言基础、变量、数据类型、控制语句、函数、指针、数组、切片、映射、结构体等等。

  2. Go 语言并发:Go 语言天生支持并发,学习并发编程需要掌握 goroutine 和 channel 的使用,以及常用的并发模型和并发编程的技巧。

  3. Go 语言标准库:Go 语言的标准库非常丰富,学习如何使用标准库可以让你更快速地编写高效的程序。

  4. Go 语言开发工具和环境:学习如何安装和配置 Go 语言的开发环境,以及如何使用 Go 的命令行工具进行编译、运行和调试程序。

  5. Go 语言网络编程:Go 语言天生支持网络编程,学习如何使用 Go 编写网络程序,包括 HTTP、TCP、UDP 等协议的编程。

  6. Go 语言测试和调试:Go 语言内置了测试框架,学习如何编写测试用例以及如何使用调试工具进行调试,可以帮助你更好地开发和维护 Go 语言程序。

Go 语言有 那些优势?

1.高效性:Go 语言的编译器和运行时系统被优化得非常高效,能够在性能和资源利用效率上做到卓越。此外,Go 语言的并发模型也被设计为非常高效,能够支持大规模并发。

  1. 简洁易学:Go 语言的语法简洁清晰,语言规范明确,学习曲线较为平滑。相比其他语言,Go 语言的语法更加简洁易读,没有冗余的语法和复杂的特性。

  2. 并发编程:Go 语言天生支持并发编程,提供了 goroutine 和 channel 等原语,使得编写高效、简洁的并发程序变得容易。并发编程也是 Go 语言的一大亮点和优势,被广泛应用于网络编程和高并发场景。

  3. 跨平台:Go 语言的编译器可以生成不同平台下的本地代码,支持跨平台开发,可以在不同操作系统和硬件上编写和运行相同的程序。

  4. 开发效率:Go 语言提供了一套完善的标准库和工具链,可以帮助开发者提高开发效率。同时,Go 语言的静态类型和自动垃圾回收等特性,可以减少代码出错的可能性,提高代码的稳定性和可维护性。

  5. 社区活跃:Go 语言的社区活跃度高,拥有庞大的开发者社区和众多的开源项目,可以提供丰富的资源和技术支持,方便学习和应用。

Go 语言 与 Java 语言 对比

  1. 语法风格:Go 语言和 Java 语言在语法风格上存在差异,Go 语言注重简洁和可读性,避免过多的语法和关键字;而 Java 语言的语法比较复杂,需要大量的关键字和语法结构来实现各种功能。

  2. 并发模型:Go 语言和 Java 语言在并发模型上存在差异。Go 语言使用 goroutine 和 channel 实现高效的并发编程;而 Java 语言则使用线程和锁等机制,需要开发者自行管理线程和锁,容易出现死锁等问题。

  3. 内存管理:Go 语言和 Java 语言在内存管理上有不同。Go 语言采用了自动垃圾回收机制,可以自动管理内存,减少内存泄漏等问题;而 Java 语言也支持垃圾回收机制,但由于 JVM 的实现方式和算法不同,可能存在一些性能和效率上的差异。

  4. 性能和效率:Go 语言和 Java 语言在性能和效率上有一定差异。由于 Go 语言的设计目标是高效和简洁,因此在性能和效率上具有优势,尤其是在大规模并发和网络编程方面。而 Java 语言则更注重开发效率和稳定性,因此在一些场景下性能和效率不如 Go 语言。

  5. 库和框架:Java 语言拥有庞大的生态系统和丰富的第三方库和框架,可以快速开发各种应用;而 Go 语言的生态系统相对较小,但也有一些优秀的第三方库和框架可供选择。

总的来说,Go 语言和 Java 语言在某些方面有相似之处,也有不同之处。选择使用哪种语言,需要根据具体的应用场景和需求进行考虑。

Go 语言 与Python 语言 对比

  1. 语法风格:Go 语言和 Python 语言在语法风格上存在差异,Go 语言注重简洁和可读性,避免过多的语法和关键字;而 Python 语言则更加注重代码的可读性和简洁性,采用缩进的方式表示代码块,避免使用大量的括号和分号。

  2. 并发模型:Go 语言和 Python 语言在并发模型上存在差异。Go 语言使用 goroutine 和 channel 实现高效的并发编程;而 Python 语言则使用多线程和协程等机制来实现并发编程。

  3. 内存管理:Go 语言和 Python 语言在内存管理上有不同。Go 语言采用了自动垃圾回收机制,可以自动管理内存,减少内存泄漏等问题;而 Python 语言也支持垃圾回收机制,但由于其实现方式和算法不同,可能存在一些性能和效率上的差异。

  4. 性能和效率:Go 语言和 Python 语言在性能和效率上有一定差异。由于 Go 语言的设计目标是高效和简洁,因此在性能和效率上具有优势,尤其是在大规模并发和网络编程方面。而 Python 语言则更注重开发效率和灵活性,因此在一些场景下性能和效率不如 Go 语言。

  5. 库和框架:Python 语言拥有庞大的生态系统和丰富的第三方库和框架,可以快速开发各种应用;而 Go 语言的生态系统相对较小,但也有一些优秀的第三方库和框架可供选择。

总的来说,Go 语言和 Python 语言在某些方面有相似之处,也有不同之处。选择使用哪种语言,需要根据具体的应用场景和需求进行考虑。

Go 语言 基于 GoLand 创建第一个程序

1. 打开 GoLand

在这里插入图片描述

2.选择 new

在这里插入图片描述

3. 选择SDK版本

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4. 输入项目名称,点击 cteate

在这里插入图片描述

项目创建完成

在这里插入图片描述

下一步,创建一个 Go file

在这里插入图片描述
选择 app 的文件,是带main 函数的文件

在这里插入图片描述在这里插入图片描述

可以直接输入 print 函数


package main

import "time"

func main() {
	println("libin9iOak !")
	println(time.DateTime)
	println(time.Now().Format("2006-01-02 15:04:05"))
	println("Hello Go Language !")
	println("I Can Do This !")
}


右键运行即可;

在这里插入图片描述

运行结果:
在这里插入图片描述

println(time.Now().Format("2006-01-02 15:04:05")) 语句解释:

在 Go 中,日期格式化字符串的规则是使用一些特殊的占位符来表示不同的日期和时间组件。其中,2006 年是特殊的一年,它是 Go 语言的初始版本发布的年份。因此,这个年份被用作默认的占位符,用来表示年份。

在日期格式化字符串中,使用 2006 年来代表年份,1 月来代表月份,2 日来代表日期,15 小时来代表小时,04 分钟来代表分钟,05 秒来代表秒数。这个规则可以帮助程序员更容易地记住日期格式化字符串的占位符。

所以,当你使用 time.Now().Format(“2006-01-02 15:04:05”) 这个语句时,它的意思是将当前时间按照指定的格式进行格式化输出,其中 2006-01-02 15:04:05 就是一个日期格式化字符串。使用 2006 年来表示年份,01 来表示月份,02 来表示日期,15 来表示小时,04 来表示分钟,05 来表示秒数。

因此,在 Go 中,你必须写 2006 年来代表年份,否则 Go 编译器会将它当作普通的年份来处理,导致日期格式化出现错误。

今天的分享就到这里,我们下期再见~

结语

如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、评论、收藏➕关注,您的支持是我坚持写作最大的动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/431077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-心跳机制+redis实现网站实时在线人数统计

在社交网站中,通常需要实时统计某个网站的在线人数,通过该指标来实时帮助运营人员更好的维护网站业务: 先说一下目前在市面上主流的做法再加上我自己查阅的资料总结: 创建一个session监听器,在用户登录时即创建一个s…

WEB集群之反向代理,动静分离,NFS,mysql,MHA高可用

目录 第一章实验架构 1.1.实验图谱架构 1.2.实验前环境部署 第二章实验步骤 2.1.在ha01,ha02上部署keeplived,lvs-dr 2.2.Slave01,slave02安装nginx 2.3.LVS负载均衡 2.4.搭建动态网页 2.5.nginx反向代理 2.6.部署NFS 2.7.安装mysql 2.8.安装mha 2.9.主…

教你安装 CodeWhisperer: 一款个人免费的类似GitHubCopilot能代码补全的 AI 编程助手

1、官网 AI Code Generator - Amazon CodeWhisperer - AWS 官方扩展安装教程 2、安装VSCode 下载安装VSCode 3、VSCode安装CodeWhisperer插件 安装VSCode插件 - AWS Toolkit主侧栏,点击AWS ,展开CodeWhisperer,点击Start 在下拉菜单中点…

洗浴中心管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设!!! 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址: 更多系统资源库地址:骚戴的博客_CSDN_更多系统资源 更多系统…

煤矿井下人员精准定位系统,煤矿应急救援高效应用

煤矿行业的安全发展,事关数人民群众的生命财产安全。自2020年起,国家连续三年出台煤矿智能化建设及重大风险防控的相关指导政策,其中,2022年出台的《煤矿及重点非煤矿山重大灾害风险防控建设工作总体方案》中提到,要充…

52 openEuler搭建PostgreSQL数据库服务器-管理数据库角色

文章目录52 openEuler搭建PostgreSQL数据库服务器-管理数据库角色52.1 创建角色创建角色示例52.2 查看角色查看角色示例52.3 修改角色52.3.1 修改用户名52.3.2 修改用户示例52.3.3 修改用户密码52.3.4 修改角色密码示例52.4 删除角色删除角色示例52.5 角色授权角色授权示例52.6…

Python旅游好帮手:提前15天准备五一旅游景点详细数据

人生苦短,我用python 虽然还是有15天才放五一的假, 但是我的心早已经在旅游的路上了~ 本文源码:点击此处跳转文末名片获取 趁现在,先来用python做一个旅游攻略 知识点: requests parsel csv 第三方库&#x…

python查看时间序列数据的季节规律matplotlib画时间(10分钟为间隔)序列坐标

目录0 问题描述1. 案例12. 案例2参考资料0 问题描述 将多个时间序列数据,绘制到一张图上,每段时间序列数据一般只有几个月,少则 1 个月左右,想看它们的季节规律,需要去除年份,只看月份。 也就是横轴是1月…

44.CSS Grid布局概述

什么是CSS Grid? ● CSS Grid 是一组用于构建二维布局的 CSS 属性 ● CSS Grid 背后的主要思想是我们将容器元素划分为行和列,这些行和列可以填充是子元素。 ● 在两段式语境中,CSS网格允许我们写出更少的嵌套HTML和更容易阅读的CSS ● CSS …

二分查找原理及使用场景

建议使用左闭右开区间[l, r)查找。二分查找的最后,索引l,r会落到右区间第一个元素位置。因此但凡是能够见数组分成左右两个区间的都能应用二分查找法。 1、普通查值 常见问题方式:寻找含重复值的有序数组 [...,a, tar, tar, tar,.b....]&am…

AI制药 - RCSB PDB 数据集的多维度分析与整理 (1)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130089781 整体: RCSB PDB 数据集是一个收集了蛋白质的三维结构信息的数据库,是世界蛋白质数据库(…

SQL SERVER调Web Service时候权限错误的解决

日期 2023/4/15 18:00:00 日志 作业历史记录 (AIPACS) 步骤 ID 1 服务器 GOOGLE 作业名称 AIPACS 步骤名称 RUNWS 持续时间 00:00:00 SQL 严重性 16 SQL 消息 ID 15281 已通过电子邮件通知的操作员 已通过…

MATLAB 基于空间格网的点云抽稀 (3)

MATLAB 基于空间格网的点云抽稀 (3) 一、实现效果二、原理步骤三、代码实现四、重点函数与对象的解释说明4.1 indices= pcbin(incloud,[rowNum colNum LayerNum]);4.2 occupancyGrid = cellfun(@(c) ~isempty(c), indices);4.3 outpointIndex = [];4.4 outpointIndex(end+1) …

基于ubuntu18.04上搭建OpenWRT-rtd1619环境

下载OpwnWRT的源码 下载路径:https://gitee.com/yangquan3_admin/rtd1619 您需要以下工具来编译 OpenWrt,包名称因发行版而异。 在 Build System Setup 文档中可以找到包含特定于发行版的软件包的完整列表。 binutils bzip2 diff find flex gawk gcc-6…

【Linux进阶篇】系统网络附加存储

目录 🍁NFS 🍂软件安装 🍂服务端配置 🍂客户端配置 🍂访问浏览器测试 🍁iscsi 🍂服务器端安装软件 🍂服务器端配置iscsi 🍂客户端软件安装配置 🍁常用的端口号…

这6个免费去水印工具,一定要码住!

现在很多平台会在用户保存图片/视频的时候自动给视频添加一个平台的水印,这在一定程度上影响了它的美观和使用。 下面我来分享几个图片/视频一键去水印方法,操作简单还不会损坏画质哦! 1. Magic Eraser 这是一个魔术橡皮擦在线网站&#x…

一文了解API接口自动化测试:让你在人才市场上无往不利

目录:导读 引言 架构 接口测试 API自动化测试 前后端分离的开发模式 测试工作: 协议 网络分层 三次握手的设计(很重要) 问题: URL:统一资源定位符 HTTP协议 (重点)HTTP的完整请求流程: 通信模…

springboot项目集成JWT实现身份认证(权鉴)

一、什么是JWT JSON Web Token (JWT),它是目前最流行的跨域身份验证解决方案。现在的项目开发一般都是前端端分离,这就涉及到跨域和权鉴问题。 二、JWT组成 由三部分组成:头部(Header)、载荷(Payload)与签名(signature) 头部(Head…

[测试新人必看] 测试报告如何编写? 掌握这五十个测试报告模板

作为一个曾经是测试萌新的我,在首次接收到一个任务时总有一种忐忑慌张激动紧张期望的复杂情绪~~ 忐忑慌张紧张是怕自己做不好,得不到领导的赏识;激动期望是哇塞,我有任务了耶,终于有我的用武之地了~~~ 就好比今天的主题…

Android 实现控件对称布局(约束布局和线性布局)

画界面时会遇到很多界面上的布局,虽然很简单,但是每次做起来不熟练,总结一下一些日常的 一.实现界面上的两个空间对称布局 方法一、用约束布局的guideLine.适用于两个控件不确定宽高,且约束条件较多 Guideline是只能用在Constra…