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语言相关推荐

  1. 认识一下Kotlin语言,Android平台的Swift

    今天在CSDN首页偶然看到一个贴子JetBrains正式公布Kotlin 1.0:JVM和Android上更好用的语言 看完后,感觉Kotlin语法非常简洁,有一系列动态语言的特点,Lambda表达式 ...

  2. swift android界面,使用 Swift 语言编写 Android 应用入门

    原标题:使用 Swift 语言编写 Android 应用入门 Swift标准库可以编译安卓armv7的内核,这使得可以在安卓移动设备上执行Swift语句代码.本文解释了如何在你的安卓手机上运行一个简单 ...

  3. Linux平台swift语言开发学习环境搭建

    摘要  介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍Swift编译器swiftc的使用: 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌 ...

  4. linux swift开发环境,Linux平台swift语言开发学习环境搭建

    摘要 介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍Swift编译器swiftc的使用: 1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨 ...

  5. swift linux编译器,Linux平台Swift语言开发学习环境搭建

    ####1.序言 这两天一直忙,没来得及记录东西,周三12月4日凌晨1点多看到苹果正式开源了Swift,国外各大媒体资讯动作超级快.我也兴奋的起来看了一遍关于Swift开源的最新消息.众所周知,苹果平 ...

  6. swift 在linux系统,Linux下搭建Swift语言开发学习环境

    介绍在Ubuntu平台搭建Swift开发环境: 介绍Swift脚本解析器swift的使用: 介绍swift编译器swiftc的使用: 1.序言 周三12月4日凌晨1点多看到苹果正式开源了Swift,国 ...

  7. swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法

    原文:swift语言实战晋级-第9章 游戏实战-跑酷熊猫-7-8 移动平台的算法 在上个小节,我们完成了平台的产生.那么我们来实现一下让平台移动.平台的移动,我们只需要在平台工厂类中写好移动的方法,然 ...

  8. Android的swift语言Kotlin中文开发文档

    转自GitHub https://github.com/huanglizhuo/kotlin-in-chinese?utm_source=tuicool&utm_medium=referral ...

  9. 简易蓝牙的遥控系统基于c语言,基于Android平台的遥控风扇控制系统设计

    黄进皇+黄咏梅+黄胡萍+陈章毅+马来宾 摘要:针对现有风扇智能化程度不足,控制不够便捷等问题,利用现有的蓝牙通信技术.单片机控制技术和安卓平台,设计开发了一个基于Android平台的遥控风扇控制系统, ...

最新文章

  1. 【MATLAB】基本绘图 ( 图形属性 | 绘图对象 | 图形属性界面 | 坐标轴属性 | 线属性 | 文本属性 | 图形属性设置策略 )
  2. Project interpreter not specified(eclipse+pydev)
  3. 让VC程序在Win7下获得管理员权限
  4. linux /proc/net/arp
  5. Scrum 项目4.0--软件工程
  6. eureka集群只注册一个_一、Spring Cloud Eureka服务注册中心
  7. 技术人的年货福利:百宝黑皮书在手,2020年技术栈变革一次看透 | 免费下载
  8. php模板和框架,php模板和框架的区别的区别是什么
  9. smbclient用法
  10. 这5种数据挖掘技术,大数据玩的贼溜!
  11. 汽车之家汽车详细参数之css反爬
  12. RabbitMQ无法连接
  13. 顶级计算机专家一年赚多少,成为一个计算机专家需要多高的IQ?请实话实说
  14. html 数字大小写转换,数字大小写转化
  15. 保险合同的订立,生效与履行
  16. Angular 2 升级到 Angular 5
  17. 亚马逊fire充不上电_亚马逊Fire Tablet vs.Fire Tablet Kids:有什么区别?
  18. 高清精美壁纸:2013年4月桌面日历壁纸免费下载
  19. 打开outlook显示服务器内存不足,outlook无法启动,总说计算机内存不足或磁盘已满,是怎么回事?...
  20. Unity之EditorUtility-ProgressBar进度条-一

热门文章

  1. 【Netty报错:】XXXDecoder.decode() did not read anything but decoded a message.
  2. DS18B20 单总线多器件的ROM 搜索, ALARM 检测, CRC 校验 源码实现, 基于 STM32F103
  3. 家庭教育中有近一半是由母亲负责孩子学习,占49%,父亲负责仅占10%
  4. 回看共识层进化规律,“POS+”也许是公链后期发展的出路
  5. 方便地边看便翻译原版pdf文章(wps)
  6. 将电脑的无线网通过有线分享给其他设备
  7. Docker下载和设置代理
  8. TP、FP、TN、FN傻傻分不清楚
  9. 科学绘图软件 Prism 安装教程
  10. 微视点:网传社交游戏公司“五分钟”面临倒闭,引发各方热议