区块链学习 - Golang初始

2018-01-11 03:01:09

系统:Ubuntu 16.0.4

安装

下载https://golang.org/dl/ 下载linux对应的版本
解压:将源码解压至/usr/local
tar -C /usr/local -xzf go1.4.linux-amd64.tar.gz
配置环境变量export PATH=$PATH:/usr/local/go/bin

检测安装:go version go env

HelloBlockChain

cd $HOME
mkdir golang && cd golang
vi index.go

package main
import "fmt"
func main(){
    fmt.Println("Hello Block Chain")
}
:wq

go run index.go

package 声明主程序包
import 导入第三方依赖包
func 申明函数

变量

var name [type] [=] [value]

var number int = 1
var str string = "I`m a string"
var bools bool = true

// 显式指定变量类型时,后续不能修改为其他类型的值

var year,month,day

year,month,day = 2018,1,10

// 隐式声明变量时,会根据值自动设置类型,可以通过逗号同时给多个变量赋值

first := 1
second := 2

// 可以使用冒号加等号的简写方式申明变量,等同于隐式声明变量

var (
    name = "ludis"
    age int = 18
    height
    length
)

// height = 18, length = 18
// 可以用枚举的方式声明多个不同类型的变量
// 当不给变量赋值时,默认继承前面第一个非空变量的值

常量

常量使用const声明

const WIDTH = 18
const Height int = 18

常量声明后不可修改值,其余属性与变量相同

const (
    num = iota
    num1
    num2 = 233
    num3
    num4 = iota
)

// const在声明常量时必须为其赋值
// iota为特殊类型,从0开始,每申明一个变量,自身加一,其后未赋值的常量为等于iota
// num = 0, num1 = 1, num2 = 233, num3 = 233, num4 = 4

如声明a-e分别为0-5,则可简写为:
const (
    a = iota
    b
    c
    d
    e
)

fmt.Printf()

var num int = 10

十进制:fmt.Printf("%d", num)
八进制:fmt.Printf("%o", num)
二进制:fmt.Printf("%b", num)
十六进制:fmt.Printf("%x", num)
显示地址:fmt.Printf("%v", &num)

// 十六进制通过`x`及`X`分别输出小写及大写格式,在`x`前附带#会输出十六进制标识`0x`
// fmt.Println 及原生 println 输出值后自动换行,fmt.Print需手动换行,原生print方法输出后面带%
// `\n`换行  `\t`空格
// const 声明的常量无法获得地址

go语言中,当引用的包或申明的变量未使用时会报错(厉害了老哥,不让浪费是好事233)

vue2+express前后端分离跨域session等问题

基于 vue2 + express 的 RBAC 角色权限验证前后端分离项目。前端vue2 负责路由控制,数据渲染,后端 express 负责数据库操作,RBAC权限控制。 前端: 脚手架:vue-cli 选型:vue2 + vuex + vue-router + axios + iview + ES6 后端: 脚手架:express-generator 选型:express4 + mongodb 结构整合: 使用vue-cli生成的项目,默认安装了简易的 express,该 express 的启动文件为build/dev-server.js。执行cnpm start启动该 express,实际主要是启一个服务来运行 Vue。所以我们后端部分不以该文件为入口。 后端部分的目录使用express-generator来生成,由于我们做了前后端分离,所以express 的任务只是提供接口,做数据库操作,所以我们把view、

区块链学习-进制、GO运算符

int 与 uint 区别 int 表示有符号整数 uint 表示无符号整数 int8 -128~127 int16 -2^8~2^8 ... uint8 0~255 uint16 0~2^16 ... 十进制转二进制 1. 正整数转二进制 正整数使用二除法,得到的结果倒叙即为该十位数的二进制数 2. 负数转二进制 先得到正数对应的二进制数,然后取反,再加一即为该负数的二进制数 3. 小数转二进制 整数部分+小数点+小数部分 整数部分:按照前面的步骤正常转换 小数部分:小数部分乘2,得到结果的整数部分n,若小数部分不为零,继续上面的步骤。最后得到的n的排列即为小数部分 二进制转十进制 1. 正二进制数 正二进制即首位为0的二进制数,