不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2017-08-09 20:57  分类:GoPY  编辑
import (
     "unicode"
)

func Ucfirst(str string) string {
    for i, v := range str {
        return string(unicode.ToUpper(v)) + str[i+1:]
    }
    return ""
}

func Lcfirst(str string) string {
    for i, v := range str {
        return string(unicode.ToLower(v)) + str[i+1:]
    }
    return ""
}

 

作者:php-note.com  发布于:2017-08-07 20:57  分类:GoPY  编辑
package main

import (
	"crypto/md5"
	"encoding/hex"
	"fmt"
	"io"
)

// 官网的例子:http://golang.org/pkg/crypto/md5/
func main() {
	str := "123456" // 需要加密的字符串

	h := md5.New()
	io.WriteString(h, str)
	fmt.Printf("%x\n", h.Sum(nil)) // 输出加密结果

	c := md5.New()
	c.Write([]byte(str))
	fmt.Printf("%s\n", hex.EncodeToString(c.Sum(nil))) // 输出加密结果(项目中,用这个)
}

 

作者:php-note.com  发布于:2017-08-04 20:56  分类:GoPY  编辑
package main

import (
    "fmt"
)

type A struct {
    Text string
    Name string
}

func (a *A) Say() {
    fmt.Printf("A::Say():%s\n", a.Text)
}

type B struct {
    A
    Name string
}

func (b *B) Say() {
    b.A.Say()
    fmt.Printf("B::Say():%s\n", b.Text)
}

func main() {
    b := B{A{"hello, world", "张三"}, "李四"}

    b.Say()
    fmt.Println("b的名字为:", b.Name)

    // 如果要显示 B 的 Name 值
    fmt.Println("b的名字为:", b.A.Name)
}

输出:

A::Say():hello, world
B::Say():hello, world
b的名字为: 李四
b的名字为: 张三
作者:php-note.com  发布于:2017-07-25 20:54  分类:GoPY  编辑
package main

import "fmt"

// 用户
type User struct {
	Id   int
	Name string
	Age  int
}

func main() {
	user := User{Id:2, Name:"golang"}

	// 打印 结构体
	fmt.Printf("%+v", user)

	// 输出换行符
	fmt.Printf("\n")

	// 判断实例是否为空
	fmt.Println(user == User{})
}

输出:

{Id:2 Name:golang Age:0}
false

 

作者:php-note.com  发布于:2017-07-19 20:52  分类:GoPY  编辑

通过以下文章,掌握了 Go 模板引擎 的基本用法:

作者:php-note.com  发布于:2017-06-25 20:50  分类:GoPY  编辑

摘录一:

Go 1.3 的 sync 包中加入一个新特性:Pool。

官方文档可以看这里 http://golang.org/pkg/sync/#Pool

这个类设计的目的是用来保存和复用临时对象,以减少内存分配,降低CG压力。

作者:php-note.com  发布于:2017-05-26 20:47  分类:GoPY  编辑

关于管道 Channel

  1. Channel 用来同步并发执行的函数并提供它们某种传值交流的机制。
  2. Channel 的一些特性:通过 channel 传递的元素类型、容器(或缓冲区)和 传递的方向由“<-”操作符指定。
  3. c <- 123,把值 123 输入到管道 c,<-c,把管道 c 的值读取到左边,value := <-c,这样就是读到 value 变量里面。
作者:php-note.com  发布于:2017-05-23 20:46  分类:GoPY  编辑

错误 和 异常 处理是程序的重要组成部分,我们先看看下面几个问题:

  1. 错误 和 异常 如何区分?
  2. 错误处理的方式有哪几种?
  3. 什么时候需要使用异常终止程序?
  4. 什么时候需要捕获异常?
  5. ...
作者:php-note.com  发布于:2017-05-22 20:46  分类:GoPY  编辑

Go 的基本类型共有 18 个,其中 int 和 uint 的实际宽度会根据计算架构的不同而不同。在 386 计算架构下,它的宽度为 32 比特,即 4 字节。在 amd64 (有时也称为 x86-64)计算架构下,它们的宽度为 64 比特。即 8 字节。

byte 可以看作类型 uint8 的别名类型,而 rune 可以看作 int32 的别名类型。rune 类型专用于存储 Unicode 编码的 单个字符

作者:php-note.com  发布于:2017-05-21 20:44  分类:GoPY  编辑

基本构成要素

Go 的语言符号 又称 词法元素,共包括 5 类内容——标识符(identifier)、关键字(keyword)、字面量(literal)、分隔符(delimiter) 和 操作符(operator),它们可以组成各种表达式 和 语句,而后者都无需以分号结尾。