此篇仅为不断记录趟过的坑

StringToTimestamp

import (
"time"
) const TimeFormat = "2006-01-02T15:04:05.000000Z" func StringToTimestamp(dateString string) (int64, error) {
theTime, err := time.ParseInLocation(TimeFormat, dateString, time.UTC)
if err != nil {
return 0, err
}
sr := theTime.Unix()
return sr, nil
}

代码来源于华为SDK

Redigo

使用 hmset 进行 Do 操作时,如果是多个参数,可以写成一句,例如

redis.Do("hmset", key, value1, value2, value3, ...)

如果不知道有几个参数怎么办,用切片

slice := make([]interface{}, 0)
slice = append(slice, value1, value2, value3, ...)
redis.Do("hmset", slice)

需要注意的是,由于使用了切片作为容器传递多个参数给 hmset,所以切片的第一个值应给是 key 值,从第2个开始是真正的键值对

go-mysql

导入时使用以下方式

"database/sql"
_ "github.com/go-sql-driver/mysql"

编译时如果没有下载 mysql 包是会提示没有导入?,使用 go get 下载下来

go get github.com/go-sql-driver/mysql

使用通用驱动接口 sql.DB 作为驱动操作的接口,因此声明一个 var Db *sql.DB 的全局变量来使用,并使用其进行数据操作

type User struct {
Id int
Name string
Password string
} var Db *sql.DB func main() {
// 数据连接的通用格式: user:password@tcp(host:port)/dbname?params
dsn := "xxx:xxx@tcp(192.168.0.160:3306)/mydata?charset=utf8mb4" Db, err := sql.Open("mysql", dsn)
if err != nil {
fmt.Printf("MySql connect error: %v\n", err)
return
} defer func() {
Db.Close()
fmt.Println("GoodBye, Db Closed")
}() fmt.Println("MySql connected") sqlString := "SELECT * FROM `users` LIMIT 0,1" user := User{}
err = Db.QueryRow(sqlString).Scan(&user.Id, &user.Name, &user.Password)
if err != nil {
fmt.Printf("Db Query [%v] error: %v\n", sqlString, err)
return
} fmt.Printf("Id: %v, Name: %v, Password: %v\n", user.Id, user.Name, user.Password)
}

http:HandleFunc 的时候,别忘了处理 /favicon.ico

当浏览器请求服务的时候,总是会请求 /favicon.ico 造成额外的请求

因此,一定要加入对此路径的处理,否则当浏览器进行请求时,就会额外增加对此资源的请求,如果未加处理,就会造成404或其它意外结果。

http.HandleFunc("/", common.X404)
http.HandleFunc("/favicon.ico", common.Favicon)
http.HandleFunc("/register", user.Register)
...some else

传地址,而不是变量

描述:fmt.Scanln 语句不能停下接受输入

解决:当参数是变量时,要传递地址(指针),而不是变量名。传指针是因为函数会把输入结果按照变量的地址放进去,从而更改变量的值,反之,输入结果会生成一个接收不到的新变量,和作为参数传递进来的变量没有关系。

线索:func Scanln 返回值是 count 和 error,如果不传递指针没有返回变量值的地方

感谢:Go语言技术交流群 @给我一杯酒

langString :=""
inputString := ""
fmt.Scanln(&langString, &inputString)

#Go# 点滴积累的更多相关文章

  1. 【点滴积累】通过特性(Attribute)为枚举添加更多的信息

    转:http://www.cnblogs.com/IPrograming/archive/2013/05/26/Enum_DescriptionAttribute.html [点滴积累]通过特性(At ...

  2. 移动前端webApp开发点滴积累20140629

    #移动前端webApp开发点滴积累20140629 ##关于input行内居中的问题 给input设定一个比较高的高度,在某些版本的移动设备上,文字不能垂直居中,即使设定了相同的行高也不行.(见图) ...

  3. Vim编辑器点滴积累

    Vim编辑器点滴积累 vim tab键空格数量控制 参考链接 临时:进入VIM,执行: :set tabstop=4 永久:编辑用户目录下.vimrc文件,添加:set tabstop=4 vim 安 ...

  4. sql查询学习和实践点滴积累

    https://blog.rjmetrics.com/2008/10/28/correlated-subqueries-in-mysql/ http://www.mysqltutorial.org/m ...

  5. Excel 点滴积累

    1.Excel中截取邮件@之后的字符 MID(text, start_num, num_chars) FIND(find_text,within_text,start_num) Right(strin ...

  6. 【点滴积累,厚积薄发】windows schedule task中.exe程序的路径问题等问题总结

    1.在发布ReportMgmt的Job时遇到一个路径问题,代码如下: doc.Load(@"Configuration\Business\business.config");   ...

  7. 【点滴积累,厚积薄发】windows schedule task的最小时间间隔是多少?

    在一些业务系统中,经常会出现一些需要定时运行的任务,业界已有很多优秀的选择,比如windows schedule task,Quartz等等.在以前在新蛋的时候用的是内部封装的JobConsole,非 ...

  8. 【点滴积累,厚积薄发】修改hosts,并刷新dns缓存

    Windows系统下hosts位置 C:\Windows\System32\drivers\etc 修改hosts后,要想马上生效,需要运行命令来刷新DNS缓存:ipconfig /flushdns

  9. linux的点滴积累

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #839496; background-color: rgba(1 ...

  10. Linux命令点滴积累

    1.批量删除当前目录及子目录中指定类型的文件: [root@localhost logs]# find ./ -name *.bak | xargs rm -rf [root@localhost lo ...

随机推荐

  1. 购买阿里云的云服务器时选择镜像centos时应该选择哪个版本

    购买阿里云的云服务器时选择镜像centos时应该选择哪个版本 方法/步骤首先,我们要清楚的便是每个系统之间的差别,以及在阿里云上的差别:1. Windows1.1) 系统内含正版激活.1.2) 适合于 ...

  2. TCP端口状态说明ESTABLISHED、TIME_WAIT

    TCP状态转移要点 TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放.网络服务器程序要同时管理 ...

  3. Nginx搭建成功后,无法访问Tomcat问题

    一.nginx搭建好后无法访问后端Tomcat项目 通过项目名称过滤的方式访问Tomcat,比如项目名称叫easy. 修改其server下的location目录,配置如下: server { #监听的 ...

  4. tomcat服务器输入localhost可以访问,ip无法访问解决办法

    最近在开发项目中,遇到的一个问题是: 在 tomcat中发布一个web项目,但是发布成功后,只能用http://localhost:8080/fm访问项目,不能用 http://127.0.0.1:8 ...

  5. 二)quartz.properties

    The Properties File Quartz uses a properties file called (kudos on the originality) quartz.propertie ...

  6. ZOJ3768 Continuous Login 2017-04-14 12:47 45人阅读 评论(0) 收藏

    Continuous Login Time Limit: 2 Seconds      Memory Limit: 131072 KB      Special Judge Pierre is rec ...

  7. C#基础入门 十一

    C#基础入门 十一 复选框 复选框的应用--问卷调查 实现描述:通过问卷调查统计性别和下班后回家的方式,单击"提交"按钮,通过消息框显示所提交的信息.运行结果如下图所示(图27): ...

  8. 搬家至独立博客 https://www.imzjy.com/blog/

    欢迎访问 https://www.imzjy.com/blog/

  9. zTree设置选中节点之后出现重复节点

    1.用户离开页面时最后一次点击的节点信息我会保存到数据库. 2.用户打开页面时默认选中上一次离开时选中的节点. 现在发现在设置选中节点之后,会出现重复的节点(重复现象偶尔出现). 以下是代码: var ...

  10. C#基础之流程控制语句详解

    C#程序的执行都是一行接一行.自上而下地进行,不遗漏任何代码.为了让程序能按照开发者所设计的流程进行执行,必然需要进行条件判断.循环和跳转等过程,这就需要实现流程控制.C#中的流程控制包含了条件语句. ...