4.2 句法结构

Ruby Javascript Go Lua
单行注释 # // // --
块注释 #code
#code
#code
/*
code
*/
/*
code
*/
--[[
code
--]]
行尾分号 提倡省略 提倡保留 提倡省略 提倡省略

1. Ruby

程序起止代码块

解释性语言Ruby通常是按照源码顺序从上往下解释并执行, 不过Ruby还是提供了定义程序起止指定代码的功能, 这就是BEGIN END

  • BEGIN在任何语句之前执行, 如果有多个BEGIN块, 解释器按照遇见的先后顺序执行
  • END在其他语句执行完后才会执行, 如果有多个END块, 解释器将按照遇见的顺序倒序执行
puts 3
BEGIN { puts 1 }
END { puts 5 }
BEGIN { puts 2 }
END { puts 4 }

将输出:

1
2
3
4
5

DATA对象

在ruby源代码中, 可以通过__END__隔离出一个数据区域, 在代码中可以通过DATA.read对其进行一次性读取.

嵌入文档注释

Ruby中除了上面表格中的快注释方式外, 还有一种用得不多的块注释方式:

=begin
这里面的
全部是
注释
=end

2. Javascript

行尾分号的争议

在Ruby, Go, Lua中, 只有试图在一行代码中书写多条语句, 才必须要分号分隔, 其他情况都建议省略分号, go fmt还会自动去除行尾分号, 但是主流Javascript风格却提倡保留行尾分号, 一些资料支持javascript加分号的理由大致有这些:

  • 如果源代码不加分号, 某些解释器会自动加上, 影响性能
  • 缺乏分号可能影响某些javascript语句断句, 导致执行或者压缩异常

但目前越来越多的声音表示以上的理由并不靠谱, 所有如果要求Javascript代码加上分号, 我感觉应该只有以下2个出发点:

  • 统一化: 保证团队代码一致
  • 美观: 这个是风格问题, 仁者见仁, 不同的团队可能有不同的看法.

results matching ""

    No results matching ""