文档章节

Go语法规范点

SunnyGo
 SunnyGo
发布于 2016/05/30 16:54
字数 726
阅读 40
收藏 0
Go
  1. {必须在行尾,必须在行尾,必须在行尾(重要的事情说三遍)
  2. 当标识符(包括常量、变量、类型、函数名、结构字段等等)以一个大写字母开头,如:Run,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为导出(像java里面的public);标识符如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的(像java中的 private )。
  3. import,如果你引入多个写成下面的形式
import{
    "os"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

注意其中第三行,_的作用是引入这个包只使用它的初始化函数,而不需要使用这个代码包中的任何其他部分。
如果你导入了一个包却没有使用它,则会在构建程序时引发错误,如 imported and not used: os,这正是遵循了 Go 的格言:"没有不必要的代码!"。

4.Go在不使用结构的情况下,可以一次返回多个值。

5.变量定义。Go和很多语言都不同,它在声明变量时将变量的类型放在变量的名称之后。var i int 也可以使用:=来定义变量,比如:i:=1。Go的变量是属于强关系型的,一旦定义了类型就不能够变。

6.空标识符的使用。GO语言里面用_表示空标识符。这个符号的作用是,把一个返回结果返回给一个变量,但是这个变量有不需要被使用的时候,我们往往使用`_

sess_username, _ := this.GetSession("editor_username").(string)

这段代码就是返回的error,我们不做处理。 还有一种情况会使用,那就是我们在开发中京城碰到的情况,我们写了一个函数F1(),在测试的时候那个返回值可能还没有用到,这个时候写成

  f:=F1()

编译的时候会返回,f为使用的错误,这个时候可以写成这样

 _=F1()

7.主函数main必须属于package main

8.Go的时间处理,先看代码

// @Param beginDay string 起始日期
// @Return result int 返回日期差值
// 这个函数的作用是为了返回两个日期之间的差值。
// 比如: DaydiffNow("2015-11-01") 返回与当前日期的差值
func DaydiffNow(beginDay string) int {
    begin, _ := time.Parse("2006-01-02 15:04:05", beginDay+" 00:00:00")
    diff := time.Now().Unix() - begin.Unix()
    return int(diff / (24 * 60 * 60))
}

2006-01-02 15:04:05这个绝对是个奇葩写法,据说是Go的诞生时间。
这个字符串的记忆方式是6-1-2-3(下午15点)-4-5

package main 
import (
    "fmt"
    "time"
)

func main() {
    fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}

这个是格式化显示当前时间,"2016-05-30 16:14:48"

© 著作权归作者所有

共有 人打赏支持
SunnyGo
粉丝 7
博文 28
码字总数 8249
作品 0
东城
技术主管
私信 提问
精读《Htm - Hyperscript 源码》

1 引言 htm 是 preact 作者的新尝试,利用原生 HTML 规范支持了类 JSX 的写法。 2 概要 htm 没有特别的文档,假如你用过 JSX,那只需要记住下面三个不同点: -> 。 标签引号可选(回归 html...

黄子毅
2018/12/03
0
0
滴滴开源小程序框架 Mpx ,致力于提高小程序开发体验

滴滴 WebApp 团队近日宣布开源 Mpx ,这是一款致力于提高小程序开发体验的增强型小程序框架。通过 Mpx ,开发者能够以最先进的 web 开发体验 (Vue + Webpack) 来开发生产性能深度优化的小程序...

王练
2018/12/12
0
0
精读《国际化布局 - Logical Properties》

1 引言 “一带一路” 正在积极推动中国的国际化进程,前端网站也面临着前所未有的国际化挑战。那么怎么才能积极响应 “一带一路” 战略,推动网站的国际化工作呢?可以先从国际化布局开始考虑...

黄子毅
01/02
0
0
亲身体验小程序wepy和mpvue框架的区别

前言 小编公司也随潮流,把现有h5项目,重做成小程序项目,前期是用wepy搭建的,开始感觉还不错,随着加入的功能越来越多,感觉性能也越来越成问题。下面我们来详细介绍。开发文档 原生开发小...

向建峰_Javan
2018/08/15
0
0
一篇不大靠谱的常用正则表达式汇总(前端)

前言 正则这东西吧,感觉是开发的都会接触到一些.. 那些所谓的基础语法就不说了哈,一搜一大把,来点实际的. 我这里就分享下我工作中汇总和遇到的,希望对一些小伙伴有些许帮助哈!! 正则汇总 匹配...

CRPER
2017/07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

聊聊flink的KvStateRegistryGateway

序 本文主要研究一下flink的KvStateRegistryGateway KvStateRegistryGateway flink-1.7.2/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/KvStateRegistryGateway.java pu......

go4it
29分钟前
4
0
Java springboot B2B2C o2o多用户商城 springcloud架构 (十四)在springboot中用redis实现消息队列

准备阶段 安装redis,可参考我的另一篇文章。 java 1.8 maven 3.0 idea 环境依赖 创建一个新的springboot工程,在其pom文件,加入spring-boot-starter-data-redis依赖: <dependency> ...

itcloud
35分钟前
1
0
云计算的2018年都有什么变化?

2018 年,区块链(Blockchain)在技术圈的风头一时无两,连此前大红大紫的人工智能(AI)都稍逊风骚,云计算圈则奋十年之余烈,完善产品,深耕行业,让越来越多的行业客户接受和实施云计算。回顾...

linuxCool
36分钟前
4
0
[activiti6]调用WebService几个坑

[activiti6]几个报错解决 运行test webservice org.activiti.engine.ActivitiException: no default process engine availableat org.activiti.engine.impl.test.PluggableActivitiTestCas......

Danni3
41分钟前
1
0
一张图看懂SQL的各种Join用法

下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。 具体分解如下: 1、INNER JOIN(内连接)   SELECT FROM Table_A AINNER JOIN Table_B BON A.Key = B.Key 2、L......

dragon_tech
今天
17
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部