HTTP 服务器¶
一个更有趣的例子是 HTTP 服务器
require "http/server"
server = HTTP::Server.new do |context|
context.response.content_type = "text/plain"
context.response.print "Hello world! The time is #{Time.local}"
end
address = server.bind_tcp 8080
puts "Listening on http://#{address}"
server.listen
在您阅读完整个语言参考之后,上面的代码将变得有意义,但我们已经可以学习一些东西。
-
您可以 require 其他文件中定义的代码
require "http/server"
-
您可以定义 局部变量,而无需指定它们的类型
server = HTTP::Server.new(...)
-
HTTP 服务器的端口是使用 HTTP::Server 对象上的 bind_tcp 方法设置的(端口设置为 8080)。
address = server.bind_tcp 8080
-
您通过对对象调用 方法(或发送消息)来进行编程。
HTTP::Server.new(...) # ... Time.local # ... address = server.bind_tcp 8080 # ... puts "Listening on http://#{address}" # ... server.listen
-
您可以使用代码块,或者简称为 块,这是一种非常方便的代码重用方式,并且可以从函数式编程世界中获得一些功能
HTTP::Server.new do |context| # ... end
-
您可以轻松地使用嵌入内容创建字符串,称为字符串插值。该语言还带有其他 语法 来创建数组、哈希、范围、元组等等
"Hello world! The time is #{Time.local}"