Go语言中文网 为您找到相关结果 18

golang time 时间的加减法

time包中的Add和Sub的用法,Add用于计算某个时间之前和之后的时间点,Sub用于计算两个时间差 package main import ( "fmt" "strings" "time" ) func main() { // Add 时间相加 now := time.Now() // ParseDuration parses a duration string. // A duration string is a possibly signed sequence of decimal numbers, // each with optional fraction and a unit suffix, // such as "300ms", "-1.5h" or "2h45m". // ...阅读全文

博文 2016-11-02 10:00:03 CodyGuo

golang 的time包之time

先看看有哪些类型 Time 时间类型,包含了秒和纳秒以及Location Month type Month int 月份.定义了十二个月的常量 Weekday type Weekday int 周,定义了一周的七天 Duration type Duration int64 持续时间.定义了以下持续时间类型.多用于时间的加减 需要传入Duration做为参数的时候.可以直接传入time.Second const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Millisecond Minute = 60 * Second Hou...阅读全文

博文 2014-10-04 19:26:08 zhepama

golang 位运算

http://blog.opskumu.com/golang-bitwise.html 位操作是程序设计中对位模式按位或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加法运算相同(仍然快于乘法运算). 位操作符 一、简介 关于位运算的操作,维基百科关于 位操作符 的理论介绍已经非常清楚了。关于 Golang 的位运算其实和 C 语言比较类似,除了取反的操作和 C 语言有点区别,Golang 使用的是^x,而 C 使用的则是 ~x取反。 二、概念 << [ 左移 ] 1 << 2 == 4输出 0100 ,相比右移更常见,移位后空缺的部分全部填0 >> [ 右移 ] 10 >>...阅读全文

博文 2016-03-10 15:00:03 leonpengweicn

golang 时间加减

package main import ( "fmt" "time" ) // 这个方法就是把加减时间值和时间整合到了一起而已 func CTime(t time.Time, time_str string) time.Time { time_part, err := time.ParseDuration(time_str) if err != nil { fmt.Println(err) return t } return t.Add(time_part) } func main() { k := time.Now() /*ParseDuration解析一个时间段字符串。一个时间段字符串是一个序列,每个片段包含可选的正负号、 十进制数、可选的小数部分和单位后缀,如"300ms"、"-1.5...阅读全文

博文 2017-10-30 06:03:10 捍卫机密

Golang 语言基础之六: string, pointer

Golang 语言基础之六: string, pointer Golang 语言基础系列: Golang 语言基础之一: type, variable, constant Golang 语言基础之二: for, ifelse, switch Golang 语言基础之三: array, slice Golang 语言基础之四: map, range Golang 语言基础之五: function Golang 语言基础之六: string, pointer Golang 语言基础之七: struct, method Golang 语言基础之八: interface Golang 语言基础之九: error, panic, recover Golang 语言基础之十: goroutine, ch...阅读全文

博文 2017-02-10 13:40:49 Xiaohui Wang

golang-设计模式-简单工厂模式

需求:使用任何一种您熟悉的面向对象语言写一个计算器(加减乘除) 分析:有四个方法,分别是加法、减法、乘法、除法。要达到最大的解耦合,就必须将计算逻辑与输出分离。四个方法要相对独立,不互相影响。故此设计了这个UML图。 图片上传失败,请问各位大侠,我要怎么操作才能将UML截图放在这里? 接口类:calculatorInterface.go ```javascript package simple_factory type CalculateEngine interface { Calculate(num1, num2 float64) float64 } ``` 实现类:calculatorRealization.go ```javascript...阅读全文

python获取当前时间写法

来源:http://www.oldboyedu.com/zuixin_wenzhang/index/id/131.html 在从事Python相关工作中,Python时间模块与日常工作密切相关,因此,掌握时间处理模块及方法十分重要,以下是相关内容介绍: **1. time模块** time模块下有很多函数可以日期和时间的处理,如time.time()用于获取当前时间戳,localtime()将浮点数的时间戳向时间元组转换,asctime()和strftime()可以进行时间和日期的格式化,time.sleep()可以进行时间定时等。 **实例:** import time #引入time模块 localtime = time.localtime(tim...阅读全文

7.MIT 6.824 LAB 4A(分布式shard database)

第一步 阅读文档 https://pdos.csail.mit.edu/6.824/labs/lab-shard.html 一直读到4B之前,理解他的每个段落的意思。我是读到第三遍 才全部读清楚。 第二步 整理这个DB的架构思路 lab4 的架构是典型的 M/S 架构(a configuration service and a set of replica groups),不过实现十分基础,很多功能没有实现:1) shards 之间的传递很慢并且不允许 concurrent client acess;2) 每个 raft group 中的 member 不会改变。 configuration service 由若干 shardmaster 利用 raft 协议保证一致性的集群; 管理 con...阅读全文

博文 2019-05-14 21:34:57 西部小笼包

Golang atomic

子操作函数 分为下面系列函数,其中Xxx可以是Int32/Int64/Uint32/Uint64/Uintptr/Pointer其中一种。 1.SwapXxx系列:交换新旧值; // SwapInt32 atomically stores new into *addr and returns the previous *addr value. func SwapInt32(addr *int32, new int32) (old int32) 2.CompareAndSwapXxx系列:比较并交换; // CompareAndSwapInt32 executes the compare-and-swap operation for an int32 value. func CompareAn...阅读全文

博文 2017-12-22 14:00:01 chevin

67. 二进制求和

给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1" 输出: "100" 示例 2: 输入: a = "1010", b = "1011" 输出: "10101" 碰到这个题目的第一个思路,转换为十进制求和,刚刚好熟悉一下 golang strconv 库 func addBinary(a string, b string) string { ai, err := strconv.ParseInt(a, 2, 64) if err != nil { fmt.Println(ai, err) } bi, err := strconv.ParseInt(b, 2, 64) return fmt.S...阅读全文

博文 2018-11-19 02:34:40 PRE_ZHY

golang reflect反射(一):interface接口的理解

interface:不限定类型,只关注方法! ​ 这是它的优点,因为编译器在编译时不去确定你传的到底是什么类型,你传一个string,它能接收,你传一个对象struct,它也能接收,它只有一个要求,实现我要求实现的方法! ​ 既然interface是不限定类型,是通用类型,这是一种开放表现,这种开放怎么实现的呢?方法就是不去检验你的类型,既然不检验那也不去记录你的类型!!!!注意interface不记录你的类型,所以不管你是string,struct,int,我都不管,我都不记录,我只记录你的地址,结果是编译器在编译时也不知道你是什么类型,你有什么字段! ​ 但是现在有一个问题,编译器也没办法确定一个interface以前是什么类型!(编译时)这就是因果关系:为了达到通用,interface...阅读全文

博文 2019-03-30 18:34:39 陈卧虫

基于golang的分数运算函数

# [gofal](https://github.com/xxjwxc/gofal) [gofal](https://github.com/xxjwxc/gofal) - golang分数运算相关函数 - 支持精准运算 - 支持加减乘除 - 支持链式表达式 - 支持结果输出(flat64) ### 调用示例 e 1、 加法 ```go tmp := fractional.Model(7, 12) tmp1 := fractional.Model(1, 12) fmt.Println(tmp.Add(*tmp1)) ``` - out ```sh &{2 3} ``` 2、 减法 ```go tmp = fractional.Model(1, 4) tmp1 = fractional.Mode...阅读全文

博文 2019-08-06 00:23:37 xie1xiao1jun

golang 时间加减

time包中的Add和Sub的用法,Add用于计算某个时间之前和之后的时间点,Sub用于计算两个时间差 package main import ( "fmt" "strings" "time" ) func main() { // Add 时间相加 now := time.Now() // ParseDuration parses a duration string. // A duration string is a possibly signed sequence of decimal numbers, // each with optional fraction and a unit suffix, // such as "300ms", "-1.5h" or "2h45m". // ...阅读全文

博文 2019-08-29 14:33:46 Steven_25bb

基于golang的分数运算函数

# [gofal](https://github.com/xxjwxc/gofal) [gofal](https://github.com/xxjwxc/gofal) - golang分数运算相关函数 - 支持精准运算 - 支持加减乘除 - 支持链式表达式 - 支持结果输出(flat64) ### 调用示例 e 1、 加法 ```go tmp := fractional.Model(7, 12) tmp1 := fractional.Model(1, 12) fmt.Println(tmp.Add(*tmp1)) ``` - out ```sh &{2 3} ``` 2、 减法 ```go tmp = fractional.Model(1, 4) tmp1 = fractional.Mode...阅读全文

博文 2019-08-08 23:43:25 xie1xiao1jun

基于golang的分数运算函数

gofal gofal golang分数运算相关函数 支持精准运算 支持加减乘除 支持链式表达式 支持结果输出(flat64) 调用示例 e 1、 加法 tmp := fractional.Model(7, 12) tmp1 := fractional.Model(1, 12) fmt.Println(tmp.Add(*tmp1)) out &{2 3} 2、 减法 tmp = fractional.Model(1, 4) tmp1 = fractional.Model(1, 3) fmt.Println(tmp.Sub(*tmp1)) out &{-1 12} 3、乘法 tmp = fractional.Model(3, 4) tmp1 = fractional.Model(2, 3) f...阅读全文

博文 2019-08-06 07:32:38 xie1xiao1jun

golang 结合实例更好的理解参数传递和指针

关于参数传递 其实go的参数传递,核心就是一句话:go里所有参数传递都是值传递,既把参数复制一份放到函数里去用。 go的函数传参,不管参数是什么类型,都会复制一份,然后新的参数在函数内部被使用。 不像其他语言,有的时候传参只是传递一个原来参数的引用(引用和指针的区别,欢迎翻看我上上上上一篇分享),在函数内部操作变量,其实还是操作的原变量。go内不会直接的操作原变量。 关于指针 相比于C里的指针,go内部的指针一个被简化过的指针,指针可以取值获取其变量;变量可以取地址获取一个指针类型的值。 但是不可以对指针执行 地址的加减操作(unsafe.Pointer 可以,不在本次讨论范围之内)。 我觉得这个简化挺好,保留了参数传递时避免大变量的优势,又去掉了复杂性。 下面来通过实例具体说明 之所以用 ...阅读全文

博文 2019-08-12 00:32:52 名白

Golang的strings.go源码解析 - Rabin-Karp了解一下?

前言 strings包是我们经常在处理字符串的时候要用的,这次我们来看看它其中的一些方法具体是如何实现的。我就找到其中常用的几个方法,然后针对其中比较难的部分还有应用到一些特别算法的部分进行分析。 ToUpper 先来看个简单的ToUpper,将所有字符转换成大写。这个如果让我们自己实现也没有什么难度,就是遍历每个字符转换成大写就可以。 // ToUpper returns a copy of the string s with all Unicode letters mapped to their upper case. func ToUpper(s string) string { isASCII, hasLower := true, false for i := 0; i < len(...阅读全文

博文 2019-06-20 17:32:51 LinkinStar

Golang笔记

--[切片和数组]-- 切片本质上是一组指向数组特定片段的指针,所以切片不可能单独存在,即使直接make一个切片,其背后也隐藏着一个数组来实际存储数据。var a [2]int //定义的是一个2长度的数组var b []int //定义的是一个切片b=a //这个赋值在语法上是不成立的var matrixA [][2]inta=matrixA[0] //因为是数组的拷贝,这里进行值拷贝,a和matrixA互不影响var matrixB [][]intb = matrixB[0] 因为是切片的拷贝,这里只是一个指针引用,修改数组中的值会影响b--[异常机制 defer]--defer func example() {***}这里example函数无论写在父函数的什么位置,都只会在发生异常或者...阅读全文