• 设为首页
  • 收藏本站
  • 手机版
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 扫一扫,访问微社区

    登录 加入我们
  • 查看: 1499|回复: 1

    Ceylon教程(10):基础-----宽箭头和前置声明

    [复制链接]

    28

    主题

    33

    帖子

    198

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    198
    发表于 2017-8-16 23:19:32 | 显示全部楼层 |阅读模式
    Ceylon的表达式语法是比java强大的,在声明函数或者值的时候,我们可以使用宽箭头“=>”,例如
    • String name => firstName + " " + lastName;

    [color=rgb(18, 173, 173) !important]复制代码


    或者
    • Float sqr(Float x) => x*x;

    [color=rgb(18, 173, 173) !important]复制代码


    请注意“=>”和“=”的差别,例如
    • String name = firstName + " " + lastName;


    [color=rgb(18, 173, 173) !important]复制代码



    在使用“=>”的表达式中,name是随着firstName和lastName变化每次计算的,而“=”只计算一次,并将值赋给name。
    下面,我们可以用这个语法来重新定义我们的hello world函数了,如下:
    • void hello() => print("Hello, World!");

    [color=rgb(18, 173, 173) !important]复制代码


    在java和C#中,定义和初始化是可以分开的,ceylon也可以,如下:
    • String name;
    • name = firstName + " " + lastName;
    • print(name);

    [color=rgb(18, 173, 173) !important]复制代码


    它也可以用宽箭头来表示:
    • String name;
    • name => firstName + " " + lastName;
    • print(name);

    [color=rgb(18, 173, 173) !important]复制代码


    Ceylon的编译器会保证你在初始化之前不能使用它。
    分享到:
    回复

    使用道具 举报

    10

    主题

    14

    帖子

    103

    积分

    注册会员

    Rank: 2

    积分
    103
    QQ
    发表于 2017-8-20 20:23:58 | 显示全部楼层
    也就是说,使用"=>"的表达式都可以被看做是闭包?
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    Archiver|手机版|小黑屋|ceylon中文论坛 Powered by Discuz! X3.4 © 2001-2017 Comsenz Inc.

    快速回复 快速发帖 返回顶部 返回列表