当前位置: 首页 > news >正文

Go语言:对其语法的一些见解

按照如下教程写了这样如下两段代码

Return and handle an error - The Go Programming Language

目录

1.初始化一个模块

2.编写代码

3.编写和执行过程中的一些报错提示

4.语法入门经验对比


1.初始化一个模块

D:\code\go_code\el>go mod init el
go: creating new go.mod: module elD:\code\go_code\el>type nul> greet.goD:\code\go_code\el>type nul> hello.go

go.mod

module elgo 1.25.0

2.编写代码

hello.go

package mainimport ("fmt""log"
)func main(){log.SetPrefix("greetings: ")log.SetFlags(0)message, err := Hello("Han")if err != nil {log.Fatal(err)}fmt.Println(message) 
}

2.编写greet.go

package mainimport ("errors""fmt"
)func Hello(name string) (string, error){if name == "" {return "", errors.New("empty name")   }message := fmt.Sprintf("Hi, %v. Welcome", name)return message, nil 
}

3.编译执行成功的情况

3.编写和执行过程中的一些报错提示

3.1 .\hello.go:16:13: declared and not used: err

就是说如果go语言中的定义变量没有被引用的话,程序编译就会报错

也就是如下内容

3.2 assignment mismatch: 2 variables but Hello returns 1 value

也就是说函数的返回值如果是一个组合,那么组合中间需要逗号隔开,它不像参数类型和名称一样。

3.3 too many return values

也就是说,go语言文件中,要对每个返回的值进行处理,而不能空置。这一点和其他语言还是有区别的,严谨了很多,绝对不会产生废代码,除非你注释掉。

4.语法入门经验对比

1.类似Java 驼峰格式的方法名

2.类似python的可以返回一个元组

3.类似python一样的if 比较表达式 可以不需要括号

4.不理解为什么在等号面前搞一个冒号:这在别的编程语言从没见过,是有什么神奇之处吗

5.返回的一个对象信息,需要进行New创建,这和Java 很像

6.字符列表中的最后一个元素一定要带上逗号  “,”,否则会报错

.\greet.go:22:33: syntax error: unexpected newline in composite literal; possibly missing comma or }

http://www.dtcms.com/a/507259.html

相关文章:

  • Go Web 编程快速入门 · 04 - 请求对象 Request:头、体与查询参数
  • 伦教九江网站建设辽宁工程建筑信息网
  • Deep End-to-End Alignment and Refinement for Time-of-Flight RGB-D Module,2019
  • Ubuntu 安装 Gitea
  • 通达信灵活屏
  • 亚马逊云代理商:AWS怎么通过加密实现数据保护目标?
  • C标准库--C99--控制浮点环境<fenv.h>
  • 【Linux】“ 权限 “ 与相关指令
  • webrtc弱网-ReceiveSideCongestionController类源码分析及算法原理
  • 通达信--主题投资分析
  • 揭阳专业做网站天台县建设规划局网站
  • 福海网站制作关键词堆砌的作弊网站
  • sql特训
  • LeetCode 刷题【126. 单词接龙 II】
  • 防火墙规则设置
  • 江协科技STM32课程笔记(五)— ADC模数转换器
  • 什么是慢查询,慢请求,以及如何避免
  • 网站设计模板简约福州网站设计
  • 各大网站做推广广告什么是企业形象设计
  • 大模型金融量化比赛
  • Kubernetes深入学习之容器入门(一)
  • Docker安装部署MrDoc觅思文档-免费的国产知识库管理系统
  • 批量更新操作全攻略:从JDBC原理到多框架实现(MyBatis/MyBatis-Plus/Nutz)
  • 简述:普瑞时空数据建库软件(国土变更建库)之一(2025年部分新规则)
  • 零基础新手小白快速了解掌握服务集群与自动化运维(十二)Python编程之面向对象
  • 刚学做网站怎么划算普洱专业企业网站建设
  • Java基础——面向对象复习知识点12
  • IPv6路由技术
  • 网站建设开票开什么内容电脑禁止访问网站设置
  • WPeChatGPT 插件使用教程(转载)