Lua 极简指南(2)— 函数

2014 年 10 月 24 日 by name5566 Categories: Computer Science, Lua, Programming in Lua 3rd, Reading Notes

Programming in Lua 3rd》读书笔记

Lua 和其他很多语言一样,函数调用时参数列表被包裹在括号中:

print('Hello World')

特别的情况是,如果函数调用时只有一个参数,并且此参数为字符串 literal(字面量)或者 table 构造器(constructor)时,包裹参数的括号可以省略:

print 'Hello World'  print('Hello World')
type{}               type({})

Lua 为面向对象的调用提供了特殊的语法:

o:foo(x)  o.foo(o, x[......]

继续阅读

没有评论

Lua 极简指南(1)— 基础

2014 年 10 月 23 日 by name5566 Categories: Computer Science, Lua, Programming in Lua 3rd, Reading Notes

Programming in Lua 3rd》读书笔记

Chunks

一个 Chunk 就是一组被执行的语句,例如一个文件或者交互模式下的一行。

标识符(identifiers)

我们应该避免使用以 _ 开头并跟上一个或者多个大写字母的字符串来作标识符,它们被保留作特殊的用途(例如:_VERSION)。

注释

单行注释使用

--

多行注释使用

--[[ 和 --]]

类型简介

Lua 存在的数据类型包括:

  1. nil。此类型只有一个值 nil。用于表示“空”值。全局变量默认为 nil,删除一个已经赋值的全局变量只需要将其赋值为 nil[......]

继续阅读

没有评论

在 Golang 中使用 C 代码

2014 年 10 月 21 日 by name5566 Categories: C/C++, Computer Science, Golang

参考文献列表:
http://golang.org/cmd/cgo/

cgo 使得在 Golang 中可以使用 C 代码。

Hello World

为了有一个较为直观的了解,我们来看一个简单的例子,创建文件 main.go:

package main

/*
#include <stdio.h>

void sayHi() {
    printf("Hi");
}
*/
import "C"

func main() {
    C.sayHi()
}

执行程序:

go run main.go

程序执行并输出 hi[......]

继续阅读

没有评论

在 Golang 中使用 Protobuf

2014 年 10 月 11 日 by name5566 Categories: Computer Science, Golang

https://code.google.com/p/goprotobuf/ 项目为 Golang 提供了 Protobuf 的支持。

安装 goprotobuf

  1. https://github.com/google/protobuf/releases 获取 Protobuf 编译器 protoc(可下载到 Windows 下的二进制版本)
  2. 获取 goprotobuf 提供的 Protobuf 编译器插件 protoc-gen-go(被放置于 $GOPATH/bin 下,$GOPATH/bin 应该被加入 PATH 环境变量,以便 protoc 能够找到 protoc-gen-g[......]

继续阅读

没有评论

Linux 下安装和配置 VPN(Virtual Private Network)

2014 年 08 月 29 日 by name5566 Categories: Computer Science

了解 VPN

VPN 是 Virtual Private Network(虚拟私有网络)的缩写。所谓私有网络指的是使用私有 IP 地址空间的网络,例如企业内部建立的局域网。有些时候,我们需要通过公有网络(public network,例如 Internet)来建立私有网络,这种私有网络也就是 VPN。我们常见的 PPTP(Point-to-Point Tunneling Protocol)就是实现 VPN 的一种协议。PPTP 使用 PPP(Point-to-Point Protocol)来对数据包加密和验证,而 PPTP 本身主要用于为 PPP 提供路由支持。PPTP 不够安全,但是相关安[......]

继续阅读

一条评论

Golang 极简指南(4)— 编码

2014 年 08 月 04 日 by name5566 Categories: Computer Science, Golang

参考文献列表:
http://golang.org/doc/code.html

workspace

Golang 的代码必须放置在一个 workspace 中。一个 workspace 是一个目录,此目录中包含几个子目录:

  1. src 目录。包含源文件,源文件被组织为包(一个目录一个包)
  2. pkg 目录。包含包对象(package objects)
  3. bin 目录。包含可执行的命令

包源文件(package source)被编译为包对象(package object),命令源文件(command source)被编译为可执行命令(command executable)。使[......]

继续阅读

没有评论

关于能力

2014 年 08 月 03 日 by name5566 Categories: Others

我认为人最关键的能力有两个:

  1. 解决问题的能力
  2. 与人合作的能力

生活中充满了各种各样的问题。解决问题才能够推进事物的发展。

一个人能够解决的问题是有限的,主要是由于个人的能力和精力是受限的,所以与人合作就显得至关重要。有效的合作可能是基于能力互补的,也可能是弥补精力不足的,或者两者兼有之。

一条评论

Golang 极简指南(3)— 并发支持

2014 年 07 月 29 日 by name5566 Categories: Computer Science, Golang

参考文献列表:
http://tour.golang.org/

Golang 运行时(runtime)管理了一种轻量级线程,被叫做 goroutine。创建数十万级的 goroutine 是没有问题的。范例:

package main

import (
    "fmt"
    "time"
)

func say(s string) {
    for i := 0; i < 5; i++ {
        time.Sleep(100 * time.Millisecond)
        fmt.Println(s)
    }
}[......]

继续阅读

没有评论

Golang 极简指南(2)— 方法和接口

 by name5566 Categories: Computer Science, Golang

参考文献列表:
http://tour.golang.org/

方法

在 Golang 中没有类,不过我们可以为结构体定义方法。我们看一个例子:

package main

import (
    "fmt"
    "math"
)

type Vertex struct {
    X, Y float64
}

// 结构体 Vertex 的方法
// 这里的方法接收者(method receiver)v 的类型为 *Vertex
func (v *Vertex) Abs() float64 {
    return math.Sqrt(v.[......]

继续阅读

没有评论

Golang 极简指南(1)— 基本概念

2014 年 07 月 28 日 by name5566 Categories: Computer Science, Golang

参考文献列表:
http://tour.golang.org/

安装 Golang

http://golang.org/dl/ 可以下载到 Golang。安装文档:http://golang.org/doc/install

Hello Go

我们先创建一个文件 hello.go:

package main

import "fmt"

func main() {
    fmt.Printf("hello Golang\n");
}

执行此程序:

go run hello.go

Golang 程序由包(packages)组成[......]

继续阅读

没有评论