自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java 8決定采用跟C#一樣的Lambda句法

原創(chuàng)
開發(fā) 后端
鑒于Java 7 SE(標(biāo)準(zhǔn)版)現(xiàn)已正式發(fā)布,甲骨文和Java社區(qū)進(jìn)程組織(JCP)的成員們已開始仔細(xì)考慮為這種編程語言的下一個版本Java SE 8添加什么功能特性。前段時間曝光將為Java 8提上議程的工作是:設(shè)計面向云計算的Java。近日又有提出了對Java 8語法上的改變:Java 8 將采用跟C#一樣的Lambda句法。

鑒于Java 7 SE(標(biāo)準(zhǔn)版)現(xiàn)已正式發(fā)布,甲骨文和Java社區(qū)進(jìn)程組織(JCP)的成員們已開始仔細(xì)考慮為這種編程語言的下一個版本Java SE 8添加什么功能特性。前段時間曝光將為Java 8提上議程的工作是:設(shè)計面向云計算的Java。近日又有提出了對Java 8語法上的改變:Java 8 將采用跟C#一樣的Lambda句法。

lambda-dev在郵件列表宣布,Java的Lambda語法決定基于C#語法。這種語法在C#語言里已經(jīng)使用很長時間了(C#在1.0時期便引入了委托類型,并在2.0里支持匿名函數(shù),3.0對Lambda表達(dá)式提供支持)。

這種語法同時支持表達(dá)式和代碼塊。表示式的形式不需要大括號,并且在執(zhí)行后返回結(jié)果。語法塊的形式需要使用大括號,除非使用了return關(guān)鍵字,否則不會直接返回結(jié)果。郵件里也給出了示例:

C#的語法是:

  1. lambda = ArgList Arrow Body  
  2.    ArgList = Identifier  
  3.              | "(" Identifier [ "," Identifier ]* ")" 
  4.              | "(" Type Identifier [ "," Type Identifier ]* ")" 
  5.    Body = Expression  
  6.              | "{" [ Statement ";" ]+ "}" 

這里是使用lambda表達(dá)式這種語法的一些例子:

  1. x => x + 1  
  2.    (x) => x + 1  
  3.    (int x) => x + 1  
  4.    (int x, int y) => x + y  
  5.    (x, y) => x + y  
  6.    (x, y) => { System.out.printf("%d + %d = %d%n", x, y, x+y); }  
  7.    () => { System.out.println("I am a Runnable"); } 

Lambda表達(dá)式的關(guān)鍵優(yōu)勢,在于它們會對參數(shù)進(jìn)行類型推斷。不過在某些情況下,編譯器依然無法推斷出正確類型(尤其是出現(xiàn)操作符重載的時候,例如:(x, y) => x + y 在Java編譯器不知道x和y是int還是double時候)。一般來說,類型推斷引擎都能自動得出正確的代碼,如果需要更多提示,程序員也始終可以顯示地增加類型信息。

不久的將來會發(fā)布支持新語法的編譯器以供體驗。

參考原文:http://mail.openjdk.java.net/pipermail/lambda-dev/2011-September/003936.html

【編輯推薦】

  1. Java 8整裝待發(fā) 圖謀云計算
  2. Java 7是蜜糖還是毒藥?
  3. JRuby和Java 7 我們可以期待什么
  4. 別用Java 7?你是在開玩笑嗎?
  5. 漫談Java 7的新特性與C# 2.0的相似之處
責(zé)任編輯:陳貽新 來源: 51CTO
相關(guān)推薦

2024-08-19 11:23:36

2011-02-28 10:38:13

Windows 8

2009-08-20 16:52:41

C# Hello Wo

2025-02-21 08:48:16

Typescript內(nèi)置聯(lián)合類型

2020-02-14 14:36:23

DevOps落地認(rèn)知

2012-06-08 13:47:32

Wndows 8Vista

2009-09-14 13:44:14

Lambda ExprC# Lambda

2009-06-12 15:26:02

2012-03-07 17:24:10

戴爾咨詢

2012-12-20 10:17:32

IT運(yùn)維

2013-01-11 18:10:56

軟件

2015-08-25 09:52:36

云計算云計算產(chǎn)業(yè)云計算政策

2009-08-27 09:44:59

C# Lambda表達(dá)

2009-09-14 14:25:53

C# Lambda EC# Lambda

2009-01-20 10:39:00

Windows7IE 8瀏覽器

2022-08-19 07:32:26

MySQLMySQL8版本

2009-07-09 09:51:07

Lambda表達(dá)式C#

2020-05-09 09:30:22

代碼產(chǎn)品業(yè)務(wù)

2009-08-26 16:17:23

C# Lambda表達(dá)

2011-01-04 09:34:23

LambdaC#
點贊
收藏

51CTO技術(shù)棧公眾號