内容简介:Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和300多名贡献者设计开发。它的语法受到 Ruby 语言的启发,它是一种编译语言,具有静态类型检查功能,但一般不需...
Crystal 是一种通用的、面向对象的编程语言,由 Ary Borenszweig、Juan Wajnerman、Brian Cardiff 和300多名贡献者设计开发。它的语法受到 Ruby 语言的启发,它是一种编译语言,具有静态类型检查功能,但一般不需要指定变量或方法参数的类型,可实现接近 c/c++ 的性能。它的类型由一个先进的全局类型推理算法来解决。
Crystal 1.0.0 版本正式发布,该版本是 Crystal 的第一个主要版本,也是它的一个重要里程碑。此版本更新内容如下:
语言变化
- 支持
Tuple#[](Range)
编译时范围资源. (#10379)
宏
- 不要使用命名的参数键名作为
method_missing
调用的参数
标准库
- (break-change) 删除已废弃的定义
- 修正多处的示例代码
宏
- (break-change) 总是在 getter/property 宏中添加显式返回类型。
数值
- (break-change) 将默认的四舍五入模式改为
TIES_EVEN
- 修复降频浮动无穷大
- 修正
String#to_f
超出范围的行为 - 实现
Number#round
的四舍五入模式。 - Add missing unicode whitespace support to
String
methods. (#10367, thanks @straight-shoota)
文本
- 为
String
方法添加缺失的 unicode 空白支持
集合
- 修正
Range#==
忽略通用类型参数 - 让
Enumerable#flat_map
、Iterator#flat_map
可以和混合元素类型一起使用 - 删除重复的
sort
相关规格 - 修正关于
Set#each
返回类型的文档 - 修正文档中关于
Set#*set_of?
的例子 - 修正对设定规格的期望
序列化
- (break-change) 默认将
Enum
序列化为下划线的String
- (break-change)在 XML 模块中使用类代替结构体
- 增加
YAML::Nodes::Node#kind
文件
- 让
IO::Memory
不能用只读的Slice
写入 - 允许在
IO#read_at
中使用Int64
值 - 增加
IO::Sized#remaining=(value)
来重用一个现有的实例
联网
- (security) 删除 Cookie 名称解码
- (break-change) 删除 cookie 值的隐式编。(#10485, thanks @straight-shoota)
- (break-change) 将
HTTP::Cookies.from_headers
拆分成服务器/客户端的独立方法 - (性能) 对
HTTP::Cookies
进行了小幅性能改进 - 从类方法构造
HTTP::Client
时,遵循子类 - 让
content-length
标头更符合 RFC 标准 - 修正
#respond_with_status
,当标头文件写入或关闭时 - 修正
Cookie#==
,把所有的 ivars 都考虑进去 - 删除
HTTP::Cookie
中隐含的path=/
- 添加
HTTP::Request#local_address
日志
- 在
#finalize
时关闭AsyncDispatcher
系统
- 修正
Process.parse_argument
的行为 - 为 macOS/darwin 目标添加 aarch64 支持
- 在 x86_64-darwin 中加入
LibC::MAP_ANONYMOUS
以匹配其他平台
运行时
- 改进 ELF 阅读器在未初始化运行时的错误信息。
编译器
- (break-change) 不允许在字符串和字符文字的转义序列中代入一半,
\\x
用于任意二进制值。 - 修正当在详尽的段内调用伪方法时的 ICE
- 修复解析
foo.%
调用时的 ICE - 修正符号引用规则的边缘情况
- 在 Const 初始化器中支持封闭的变量
- 文档语法修正
更多详情可查看:https://github.com/crystal-lang/crystal/releases/tag/1.0.0
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 韦乐平:网络将从“随选”迈入“随愿”
- 航盛电子朱新军:智能座舱从互联网时代迈入AI时代
- 今日推荐 | 加密投资基金Dragonfly:Libra标志数字货币迈入主流的时刻
- 逻辑式编程语言极简实现(使用C#) - 1. 逻辑式编程语言介绍
- 那些主流编程语言的知识:C 语言(一)
- 那些主流编程语言的知识:C 语言(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。