Xtend:Android平台的Swift语言
6月份的苹果开发者大会推出了iOS平台的新编程语言Swift,用以替换陈旧的Objective-C。
尽管Google也善于创建新的语言如Go,Dart,但似乎对于Android平台并未计划有专门的语言推出。
理论上基于JVM的语言都可以被用于Android,但实际上由于Android的底层虚拟机不是标准的,
所以除Java之外的一些语言Clojure, Scala, Groovy 都需要额外多一次转换,从而引入性能弊端。
除了一个特别轻巧的语言:Xtend。
你可以把Xtend理解为CoffeeScript for Java 或者 Java 10(即Java的未来版本)。
Xtend看起来像Groovy,但是它被编译为Java代码而不是字节码。
Xtend是多范式的,支持lambdas(匿名函数、匿名内部类),函数是一级对象,具有类型推断,可选分号,运算符重载,等其他特征。
Xtend中的lambda看起来像下面这样:
button.onClickListener = [ clickedView |Toast.make(context, "Hello world!", Toast.LENGTH_LONG).show()
]
这将生成如下Java代码:
final View.OnClickListener _function = new View.OnClickListener() {@Overridepublic void onClick(final View clickedView) {Toast.make(context, "Hello world!", Toast.LENGTH_LONG).show();}
};
button.setOnClickListener(_function);
更多Xtend的语法,请访问其Eclipse项目官网。
Xtend语法很简洁漂亮,带来这些好处的另一面,是需要额外的一步编译,可能需要花费几秒时间来首先把它编译为Java代码。
另外在IDE的支持上(如IntelliJ IDEA )还比较薄弱,当然如果你使用Eclipse就没这个问题。
总之,这是一个值得尝试和学习的新型的、快乐编程的语言。
by iefreer
Xtend:Android平台的Swift语言相关推荐
- 认识一下Kotlin语言,Android平台的Swift
今天在CSDN首页偶然看到一个贴子JetBrains正式公布Kotlin 1.0:JVM和Android上更好用的语言 看完后,感觉Kotlin语法非常简洁,有一系列动态语言的特点,Lambda表达式 ...
- swift android界面,使用 Swift 语言编写 Android 应用入门
原标题:使用 Swift 语言编写 Android 应用入门 Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码.本文解释了如何在你的安卓手机上运行一个简单 ...
- Linux平台swift语言开发学习环境搭建
摘要 介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍Swift编译器swiftc的使用: 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌 ...
- linux swift开发环境,Linux平台swift语言开发学习环境搭建
摘要 介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍Swift编译器swiftc的使用: 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨 ...
- swift linux编译器,Linux平台Swift语言开发学习环境搭建
####1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨1点多看到苹果正式开源了Swift,国外各大媒体资讯动作超级快.我也兴奋的起来看了一遍关于Swift开源的最新消息.众所周知,苹果平 ...
- swift 在linux系统,Linux下搭建Swift语言开发学习环境
介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍swift编译器swiftc的使用: 1.序言 周三12月4日凌晨1点多看到苹果正式开源了Swift,国 ...
- swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法
原文:swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法 在上个小节,我们完成了平台的产生.那么我们来实现一下让平台移动.平台的移动,我们只需要在平台工厂类中写好移动的方法,然 ...
- Android的swift语言Kotlin中文开发文档
转自GitHub https://github.com/huanglizhuo/kotlin-in-chinese?utm_source=tuicool&utm_medium=referral ...
- 简易蓝牙的遥控系统基于c语言,基于Android平台的遥控风扇控制系统设计
黄进皇+黄咏梅+黄胡萍+陈章毅+马来宾 摘要:针对现有风扇智能化程度不足,控制不够便捷等问题,利用现有的蓝牙通信技术.单片机控制技术和安卓平台,设计开发了一个基于Android平台的遥控风扇控制系统, ...
最新文章
- 【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )
- Project interpreter not specified(eclipse+pydev)
- 让VC程序在Win7下获得管理员权限
- linux /proc/net/arp
- Scrum 项目4.0--软件工程
- eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心
- 技术人的年货福利:百宝黑皮书在手,2020年技术栈变革一次看透 | 免费下载
- php模板和框架,php模板和框架的区别的区别是什么
- smbclient用法
- 这5种数据挖掘技术,大数据玩的贼溜!
- 汽车之家汽车详细参数之css反爬
- RabbitMQ无法连接
- 顶级计算机专家一年赚多少,成为一个计算机专家需要多高的IQ?请实话实说
- html 数字大小写转换,数字大小写转化
- 保险合同的订立,生效与履行
- Angular 2 升级到 Angular 5
- 亚马逊fire充不上电_亚马逊Fire Tablet vs.Fire Tablet Kids:有什么区别?
- 高清精美壁纸:2013年4月桌面日历壁纸免费下载
- 打开outlook显示服务器内存不足,outlook无法启动,总说计算机内存不足或磁盘已满,是怎么回事?...
- Unity之EditorUtility-ProgressBar进度条-一
热门文章
- 【Netty报错:】XXXDecoder.decode() did not read anything but decoded a message.
- DS18B20 单总线多器件的ROM 搜索, ALARM 检测, CRC 校验 源码实现, 基于 STM32F103
- 家庭教育中有近一半是由母亲负责孩子学习,占49%,父亲负责仅占10%
- 回看共识层进化规律,“POS+”也许是公链后期发展的出路
- 方便地边看便翻译原版pdf文章(wps)
- 将电脑的无线网通过有线分享给其他设备
- Docker下载和设置代理
- TP、FP、TN、FN傻傻分不清楚
- 科学绘图软件 Prism 安装教程
- 微视点:网传社交游戏公司“五分钟”面临倒闭,引发各方热议