Golang

LeetCode 12 整数转罗马数

1 题目描述 罗马数字由7种符号(I,V,X,L,C,D,M)表示。 与数值对应关系如下表: 符号 值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 如,2的罗马数字写作II,即两个1的相加。然而4的罗马数字非IIII,而是写作IV,将1放在5之前,即5-1。同理,9写作IX。该种作减法的情形有如下6种:

阅读更多

LeetCode 393 UTF-8编码校验

1 题目描述 一个UTF8编码的字符是满足如下规则的1~4字节长的字符。 a)对单字节字符,第一个bit位为0; b)对n字节字符,前n个bit位全为1,第n+1个bit位是0,然后接着n-1个字节的前两个bit位均是10。

阅读更多

Go 1.5 Release Notes 研读

1 Go 1.5简介 Go 1.5是一个重要的版本,包括主要实现结构调整。尽管这样,我们期待绝大多数程序可以像之前一样编译、运行(因该版本仍遵守Go 1兼容性承诺)。

阅读更多

Golang 内存模型

1 指令顺序调整 对于单goroutine程序代码,编译器和处理器有时会调整源码中的指令顺序来做一些优化。当然,此类调整在当前gorouine程序来看并不会改变其源码指令所指定的行为。但在多个线程共享内存的情形下,某个goroutine内部的指令顺序调整可能会影响到依赖其指令顺序的其他goroutine的行为。 看一段代码: package main import "fmt" var s string var done bool func setup() { s = "hello world" done = true if done { fmt.

阅读更多