- 浏览: 6171 次
- 性别:
- 来自: 上海
最新评论
文章列表
Go otto 介绍 - basic
- 博客分类:
- Go
Otto是用Go实现的Javascript 解析执行库(https://github.com/robertkrimen/otto),没有使用native代码例如v8.
1. Go调用js
直接执行一段js,返回结果:
package main
import (
"fmt"
"github.com/robertkrimen/otto"
)
func main() {
vm := otto.New()
v, err := vm.Run(`
var a = 1
...
通过简单地查询公司表(comp)的100条数据来直观地比较语言的性能。
环境:笔记本64位win10, jdk 1.8, go 1.11, 本机10.1.15-MariaDB。
1. java代码
package main;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
impo ...
Go的net/http 包实现了http 编程,但是会话即session 还需应用自己实现。本文基于内存存储实现一个简单的session 管理,并解释一些语言重要的基础概念(如传值传址),基于Go 1.9.2。
分析
简单来说session 管理的难点在于过期的session ...
Go的模板简介,基于1.9.2,具体细节还请参考godoc。
1. Overview
模板是含特定标签的字符串文本,按照固定语法将它解析为静态内存结构。该结构 + 输入数据对象 => 模板执行结果。
模板字符串是UTF-8。“Action”-数据和控制结构-以“{{”和“}}”分隔;action之外的文本原封不动输出。举例:
//struct 是输入数据对象
type Inventory struct {
Material string
Count uint
}
sweaters := Inventory{"wool", 17}
//模板对 ...
nio(non-blocking io)是由操作系统实际执行阻塞的网络io:应用将要发送的数据写到某个缓冲区,由操作系统实际发送出去;操作系统接收到数据后放到某个缓冲区,供应用直接读取。由于阻塞操作都交给了操作系统,所以应用通常不会阻塞。nio不同于asynchronous io,后者是将阻塞的io操作交由应用内的某线程池去执行。
nio编程围绕着java.nio.channels.Selector:有连接过来了、连上了对方、有数据可读、有数据可写 - 所有期待被通知这四种事件的Socket/ServerSocket都注册到Selector,当事件发生时应用会知道并做相应处理。以下是一个简单例 ...