摘要:是一個可運行于和瀏覽器的靜態語言。近日發布了正式版本。語言包及工具此次發布的版本中包括完整的語言規范。命令行工具集,包括針對和的編譯器文檔編譯器。功能強大的模塊架構,可用于組織代碼,管理依賴,在運行時隔離模塊。
Ceylon是一個可運行于JVM、nodejs和瀏覽器的靜態OO語言。
近日Ceylon發布了1.0正式版本。
語言特性高可讀性,避免和消除潛在的有害架構
一個結合了子類型、參數化多態性和聲明位置變量的類型系統,支持集和交集類型,局部類型推斷等特性。
高階函數和元組類型,可以實現強大的抽象
針對模塊定義和模塊間依賴定義的先進的架構
語法靈活,支持樹形的結構表達方式
完全具體化的泛型類型,支持JVM和JavaScript虛擬機,還包括一個獨特的類型安全的元模型。
詳細語言特性請參考官方文檔。
Ceylon語言包及工具此次發布的1.0版本中包括:
完整的語言規范。
命令行工具集,包括針對Java和JavaScript的編譯器、文檔編譯器。
功能強大的模塊架構,可用于組織代碼,管理依賴,在運行時隔離模塊。
語言模塊,這是Ceylon語言的重要組成部分,是Ceylon SDK跨平臺的基礎
一個全功能的基于Eclipse的集成開發環境
目標像其他JVM語言一樣,Ceylon也被看成是“Java的替代者”,對此,Ceylon的作者Gavin King表示:
Ceylon不是Java,它是深受Java影響的一種新語言,它的設計者是Java的堅定支持者。Java不會很快消亡,沒有哪種語言能夠取代它。
Gavin King表示,開發Ceylon的初衷是為了擴展Java,而不是取代Java。Gavin認為Java中有許多問題,包括:泛型之類特性的復雜性、設計粗糙且晦澀難懂的JDK、粗劣的注解語法、不完善的塊結構、對XML的依賴性等等。因此他希望開發一種新型語言來解決這些問題。
代碼樣例函數
function distance(Point from, Point to) { return ((from.x-to.x)^2 + (from.y-to.y)^2)^0.5; }
類
class Counter(Integer initialValue=0) { variable value count = initialValue; shared Integer currentValue { return count; } shared void increment() { count++; } }
循環
String[] names = ["Tom", "Dick", "Harry"]; for (name in names) { print("Hello, ``name``!"); }
樹形結構
Table table = Table { title = "Squares"; rows = 5; Border { padding = 2; weight = 1; }; Column { heading = "x"; width = 10; String content(Integer row) { return row.string; } }, Column { heading = "x^2"; width=10; String content(Integer row) { return (row^2).string; } } };
測試
Suite tests = Suite { Test { "sqrt() function"; void run() { assert(sqrt(1)==1); assert(sqrt(4)==2); assert(sqrt(9)==3); } }, Test { "sqr() function"; void run() { assert(sqr(1)==1); assert(sqr(2)==4); assert(sqr(3)==9); } } };
Mixin
interface Sized { shared formal Integer size; shared Boolean empty { return size==0; } } interface Printable { shared void printIt() { print(this); } } object empty satisfies Sized & Printable { shared actual Integer size { return 0; } }
Comprehensions
[ for (p in people) p.firstName + " " + p.lastName ]
官方網站:http://ceylon-lang.org/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77948.html
摘要:我們的目標是建立對每一種語言的認識,它們是如何進化的,未來將走向何方。有點的味道是堅持使用動態類型,但唯一還收到合理擁泵的編程語言,然而一些在企業的大型團隊中工作的開發者擇認為這會是的一個缺陷。 為什么我們需要如此多的JVM語言? 在2013年你可以有50中JVM語言的選擇來用于你的下一個項目。盡管你可以說出一大打的名字,你會準備為你的下一個項目選擇一種新的JVM語言么? 如今借助來自...
摘要:由于云計算所有模式是將任務分發跨越不同地域的多個并行或同時運行,所以現今的編程語言都不是很適合。云計算需要客戶端代碼無縫的運行在多個客戶端設備上,雖然已經成為了一個標準,但沒有人喜歡它。 我們需要新的編程語言?你可能認為并不需要,但是如果你去了解最近的趨勢,你可能會改變你的想法。為什么Google采用GO和DART兩種編程語言?為什么IBM、Cray、Red Hat分別創造了X10、Chap...
摘要:線程過去,跨過一個線程意味著要恢復所有的其他線程,而版開始只需要恢復當前線程即可。快速搜索新版本改進了快速搜索的彈出菜單,會將搜索項高亮顯示。終于新增支持。 調試器 Groovy表達式 從16版開始,Evaluate Expression 和 Watches可以使用更短且更具表現力的Groovy表達式進行調試,而Groovy表達式以前只能用于Groovy代碼。 線程 過去,跨過一個線程...
摘要:,整合剛才已經下載好了,現在我們添加文件標簽加一行如下然后是和在文件中添加數據源配置連接本地,新建數據庫,查詢執行項目頁面列出來的語句自動建立該項目需要的數據庫內容。 簡介:本文主要介紹把現今主流的springboot框架項目和精準測試工具進行結合和應用,通過精準測試的數據穿透、數據采集、測試用例與代碼的雙向追溯、數據分析等一系列精準測試的特有功能,達到對項目質量的保證。 本次環境搭...
閱讀 2891·2021-09-28 09:36
閱讀 3642·2021-09-27 13:59
閱讀 2493·2021-08-31 09:44
閱讀 2282·2019-08-30 15:54
閱讀 2357·2019-08-30 15:44
閱讀 1189·2019-08-30 13:45
閱讀 1228·2019-08-29 18:38
閱讀 1217·2019-08-29 18:37