golang可以写前端,你澡吗?
来源:互联网 发布:touch.js api 中文 编辑:程序博客网 时间:2024/04/25 09:56
引入:GopherJS:Go代码转为JS,在浏览器中运行Go代码(公司群发的,感觉有意思就随意写了2行。)
以下文章转载:
GopherJS 可以把 Go 代码编译成纯 JS 代码。其主要目的是让你有机会用 Go 语言编写前端代码,并且可以运行在所有浏览器中。可以到这里试试 GopherJS Playground。
有了这个东东,你可利用 Go的优雅的类型系统和其他编译时(compile-time)检查,尤其是对大型项目,在Bug侦测有重大影响、有重构的能力。想想看, JS 方法是不是要经常要额外处理一些遗留参数,因为你并不确切知道其他某些代码是不是仍然在按老方法调用。如果没调用,GopherJS 会告诉你,你就可以确信和这样的Bug说拜拜了。
设计目标
- 生成代码的性能 (查看 Joseph Hager 的 《HTML5 游戏引擎评测》)
- similarity between Go code and generated JavaScript code for easier debugging
- 兼容现有的库(查看这个列表:indings to JavaScript APIs and libraries)
- 生成代码的体积小
支持哪些?
几乎所有,包括 Goroutines。欲知详情,请查看这个兼容表。
测试以下代码:
package mainimport ("fmt""github.com/gopherjs/gopherjs/js")func someFunction() { println("Hello, JS someFunction")}func main() {fmt.Println("Hello, playground")js.Global.Call("alert", "Hello, JavaScript")println("Hello, JS console")js.Global.Set("myLibrary", map[string]interface{}{ "someFunction": someFunction, }) println(js.Global.Get("myLibrary")); js.Global.Get("myLibrary").Call("someFunction"); }
这里主要
js.Global.Get("doc").Call("func", argument ...interface{})
获取window下的变量
var go$global;if (typeof window !== "undefined") {go$global = window;} else if (typeof GLOBAL !== "undefined") {go$global = GLOBAL;}
只要获取到对象 set扩展属性 get获取对象。Call 调用 是不是有点 func.call|apply 的感觉。挺赞的。
0 0
- golang可以写前端,你澡吗?
- 你可以写小说了...
- GO语言已经可以写Android项目了,你知道吗?
- 前端神器推荐—我们也可以高效优雅的写前端代码
- 前端DTO&构造假数据(目的是前端代码可以先写)
- 前端人员~~~你不知道的这种写代码方式
- C#可以写驱动程序吗?
- 终于可以写了吗?
- 博客不写可以吗?
- 写日志可以加分吗
- 我这么写可以吗?
- MATLAB写的小程序可以让你机器颤动
- 你为什么要3天后才可以写文章?
- 教你写一个可以运行java的bat文件
- 亲爱的,你可以吗
- 亲爱的,你可以吗
- 今晚可以不想你吗
- 我可以吻你吗
- 几种查找算法
- jqgrid ColModel的fixed属性
- ZT:架构师已死(转自UML软件工程组织) - 我一路走来--- - 博客频道 - CSDN.NET
- GitHub
- Tomcat7 新的数据库连接池Tomcat jdbc pool介绍和配置
- golang可以写前端,你澡吗?
- POJ 2352 Stars 树状数组
- linux shell的自动交互
- UVa 455 - Periodic Strings(字符串处理)
- 集算报表对润乾报表的优化精简
- IIC
- ZigZag Conversion (Java)
- win7 64 install dual os with debian 7-Windows7_Debian双系统安装
- 网卡厂商查询