02【保姆级】-GO语言开发注意事项(特色重点)

02【保姆级】-GO语言开发注意事项(特色重点)

  • 一、Go语言的特性
    • 1.1 第一个hello word(详解)
    • 1.2 开发编译。(重要点 / 面试题)
    • 1.3 开发注意事项
    • 1.4 GO语言的转义字符
    • 1.5 注释
    • 1.6 API 文档

之前我学过C、Java、Python语言时总结的经验:

  1. 先建立整体框架,然后再去抠细节。
  2. 先Know how,然后know why。
  3. 先做出来,然后再去一点点研究,才会事半功倍。
  4. 适当的囫囵吞枣。因为死抠某个知识点很浪费时间的。
  5. 对于GO语言,切记遵守语法格式规则。(例如python语言、例如SpringBoot框架等)
    解释:某些知识点,就是很难了解,那么先做出来,然后继续向前学习,可能在某个时间点我们就会恍然大悟。

一、Go语言的特性

1.1 第一个hello word(详解)

在这里插入图片描述

//表示该 hello.go 文件所在的包是 main,在 go 中,
// 每个文件都必须归属于一个包。
package main//表示:引入一个包,包名 fmt,引入该包后,就可以使用 fmt包的函数,比如: fimt.Println
import "fmt"// func 是一个关键字,表示一个函数。
// main 是函数名,是一个主函数,即我们程序的入口。
func main() {//表示调用 fmt 包的函数 Println 输出“hello,world’fmt.Println("hello,world") //输出hello
}
  1. go 文件的后缀是 go

  2. package main
    表示该 hello.go 文件所在的包是 main,在 go 中,每个文件都必须归属于一个包。

  3. import “fmt”
    表示:引入一个包,包名 fmt,引入该包后,就可以使用 fmt包的函数,比如: fimt.Println

  4. func main() {

    }
    func 是一个关键字,表示一个函数。
    main 是函数名,是一个主函数,即我们程序的入口。

  5. fmt.Println(“hello”)
    表示调用 fmt 包的函数 Println 输出“hello,world’

1.2 开发编译。(重要点 / 面试题)

Go语言的执行流程分析:
在这里插入图片描述

说明:两种执行流程的方式区别?

  1. 如果我们先编译生成了可执行文件(.exe文件),那么我们可以将该可执行文件拷贝到没有go开发环境的机器上,仍然可以运行。
  2. 如果我们是直接 go run go源代码,那么如果要在另外一个机器上这么运行,也需要go开发环境,否则无法执行。
  3. 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以,可执行文件变大了很多。

在这里插入图片描述

1.3 开发注意事项

Go程序开发注意事项(重点)

  1. Go源文件以“go”为扩展名。
  2. Go应用程序的执行入口是main()方法
  3. Go语言严格区分大小写。
  4. Go方法由一条条语句构成,每个语句后不需要分号(Go语言会在每行后自动加分号),这4)也体现出Golang的简洁性。
  5. Go编译器是一行行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同个,否则报错
  6. go语言定义的变量或者import的包如果没有使用到,代码不能编译通过。
  7. 大括号都是成对出现的,缺一不可。

1.4 GO语言的转义字符

\t  :一个制表位,实现对齐的功能
\n  :换行符
\\  :一个\
\"	:一个“
\r	:一个回车 fmt.Println("hello\rworld")

1.5 注释

用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性;
注释是一个程序员必须要具有的良好编程习惯。将自己的思想通过注释先整理出来,再用代码去
体现。

第一种:官方推荐使用行注释

//  行注释

第二种:

/*
多行注释。
*/

1.6 API 文档

API文档:https://studygolang.com/pkgdoc

  1. API (Application Programming Interface,应用程序编程接口)是 Golang 提供的基本编程接口。
  2. Go 语言提供了大量的标准库,因此 google 公司 也为这些标准库提供了相应的 API 文档,用于告诉开发者如何使用这些标准库,以及标准库包含的方法。
  3. Golang 中文网 在线标准库文档:https://studygolang.com/pkgdoc
  4. Golang 的包和源文件和函数的关系简图

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx代理转发请求POST变GET请求问题

🚀 注重版权,转载请注明原作者和原文链接 🥭 作者:Yuan-Programmer 🍎 个人博客:https://boke.open-yuan.com 🍉 已经替换了新的域名,总站叫做:OpenYuan开袁网&#xff0…

EASYX实现多物体运动

eg1:单个物体运动使用easyx实现单个小球的运动 #include <stdio.h> #include <easyx.h> #include <iostream> #include <math.h> #include <stdlib.h> #include <conio.h> #include <time.h> #define PI 3.14 #define NODE_WIDTH 4…

设计融合_ c#

单例模式 using System; namespace DesignIntegration{ public class TimeManager{ private static TimeManager _instance; private static readonly Object locker new Object(); private TimeManager() { } public static TimeManager…

手机app 爬虫

近期在做某个项目,涉及到需要对手机app的进行数据爬取。在上一篇博文中,讲述了以模拟机为例的配置操作流程,这里将以苹果手机为例进行描述。 下面将讲述具体配置步骤 1、安装 抓包软件 fiddler (Fiddler | Web Debugging Proxy and Troubleshooting Solutions) ​ 下载后…

【Java】AI+智慧工地云平台源码(SaaS模式)

伴随着科学技术的不断发展&#xff0c;信息化手段、移动技术、智能穿戴及工具在工程施工阶段的应用不断提升&#xff0c;智慧工地概念应运而生&#xff0c;庞大的建设规模催生着智慧工地的探索和研发。 一、带你认识智慧工地 伴随着技术的不断发展&#xff0c;信息化手段、移动…

GZ035 5G组网与运维赛题第10套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第10套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; 子…

win10-mmgen安装/cyclegan运行问题记录

mmconda环境&#xff1a; conda&#xff1a; CUDA 11.3 conda install pytorch1.11.0 torchvision0.12.0 torchaudio0.11.0 cudatoolkit11.3 -c pytorch pip install mmcv-full1.5.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.11.0/index.html 成功运行 c…

日常踩坑-[sass]Error: Expected newline

在学习sass的时候&#xff0c;运行时发现报错 经过网上冲浪知道&#xff0c;原来在声明语言的时候 lang 不能声明为 sass &#xff0c;而是 scss ,这就有点坑了 原因&#xff1a; scss是sass3引入进来的&#xff0c;scss语法有"{}“,”;"而sass没有&#xff0c;所以…

OSPF高级特性2(特殊区域,聚合)

目录 一、特殊区域 1、STUB区域&#xff1a; 2、totally stub区域 3、NSSA区域&#xff08;Not-So-stubby Area&#xff09; 4、totally NSSA区域 二、OSPF路由聚合 一、特殊区域 定义&#xff1a;特殊区域是指人为定义的一些区域&#xff0c;它们在逻辑中一般位于ospf区…

kubeadm部署kubernetes1.28

k8s在1.24版本以后删除了内置dockershim插件&#xff0c;原生不再支持docker运行时&#xff0c;需要使用第三方cri接口cri-docker https://github.com/Mirantis/cri-dockerd.git 安装前&#xff0c;需要先升级systemd和主机内核&#xff0c;本操作文档安装的是最新的版本kube…

前端埋点方式

前言&#xff1a; 想要了解用户在系统中所做的操作&#xff0c;从而得出用户在本系统中最常用的模块、在系统中停留的时间。对于了解用户的行为、分析用户的需求有很大的帮助&#xff0c;想实现这种需求可以通过前端埋点的方式。 埋点方式&#xff1a; 1.什么是埋点&#xff1f…

梯度下降|笔记

1.梯度下降法的原理 1.1确定一个小目标&#xff1a;预测函数 机器学习中一个常见的任务是通过学习算法&#xff0c;自动发现数据背后的规律&#xff0c;不断改进模型&#xff0c;做出预测。 上图的坐标系&#xff0c;横轴表示房子面积&#xff0c;纵轴表示房价&#xff0c;图…

对比解析php和go对JSON处理的区别

一、go 转化php数组代码 php程序 $str <<<EOF {"操作源":"任意","数据库":"任意","语句类型":"CREATE DATABASE&#xff1b;DROP DATABASE&#xff1b;ALTER DATABASE","影响行数":"不…

能力惊艳!DingoDB多模向量数据库完成首批向量数据库产品测试

近日&#xff0c;中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;正式开展“可信数据库”首批向量数据库产品测试&#xff0c;作为向量数据库领域创新与应用的代表企业&#xff0c;九章云极DataCanvas公司自主研发的DingoDB多模向量数据库参与并顺利完成本次测评…

目标检测与图像识别分类的区别?

目标检测与图像识别分类的区别 目标检测和图像识别分类是计算机视觉领域中两个重要的任务&#xff0c;它们在处理图像数据时有一些区别。 目标检测是指在图像中定位和识别多个目标的过程。其主要目标是确定图像中每个目标的边界框位置以及对应的类别标签。目标检测任务通常涉…

串口通信(6)应用定时器中断+串口中断实现接收一串数据

本文为博主 日月同辉&#xff0c;与我共生&#xff0c;csdn原创首发。希望看完后能对你有所帮助&#xff0c;不足之处请指正&#xff01;一起交流学习&#xff0c;共同进步&#xff01; > 发布人&#xff1a;日月同辉,与我共生_单片机-CSDN博客 > 欢迎你为独创博主日月同…

中兴再推爆款,双2.5G网口的巡天AX3000Pro+仅需299元

10月30日消息,中兴新款路由器中兴巡天AX3000Pro将于10月31日20:00正式开售,当前可在天猫、京东及红魔商城进行预约,首发价格299元。 据了解,中兴巡天AX3000Pro是中兴智慧家庭推出的巡天系列新品,也是当前市场上唯一一款300元价位内配备双2.5G网口的路由器。 中兴巡天AX3000Pro…

【了解一下,MySQL中的三大日志binlog redolog undolog】

文章目录 MySQL中的三大日志binlog redolog undolog引言binlog简介使用场景binlog刷盘时机binlog日志格式 redo log简介redo log基本概念redo log记录形式redo log与binlog区别 一条更新语句执行过程&#xff08;含日志写入&#xff09;undo log MySQL中的三大日志binlog redol…

Redis 6.0 新功能

1-支持 ACL 1.1-ACL 简介 官网&#xff1a;https://redis.io/topics/acl Redis ACL 是访问控制列表(Access Control List)的缩写&#xff0c;该功能允许根据可以执行的命令和可以访问的键来限制某些连接。 Redis 5 版本之前&#xff0c;Redis 安全规则只有密码控制&#xf…