HTTP 伺服器

一個更有趣的例子是 HTTP 伺服器:

require "http/server"

server = HTTP::Server.new(8080) do |context|
  context.response.content_type = "text/plain"
  context.response.print "Hello world! The time is #{Time.now}"
end

puts "Listening on http://127.0.0.1:8080"
server.listen

在讀完整份文件後就能理解上述的程式碼了,但是我們能夠發現一些事情。

  • 我們可以引入 (Require)其他文件裡面的程式碼:

      require "http/server"
    
  • 我們可以定義區域變數而且還不需要指定型態:

      server = HTTP::Server.new ...
    
  • 我們可以透過呼叫物件的方法(或傳送訊息)來撰寫程式:

      HTTP::Server.new(8080) ...
      ...
      Time.now
      ...
      puts "Listening on http://127.0.0.1:8080"
      ...
      server.listen
    
  • 我們還可以使用程式區塊 (Blocks),這是個重複利用程式碼的好方法,同時也可以用來模仿函數程式設計的特性。

      HTTP::Server.new(8080) do |context|
        ...
      end
    
  • 我們可以輕鬆地建立並嵌入內容到一個字串,稱作字串內插(String interpolation)

      "Hello world! The time is #{Time.now}"
    

    同時 Crystal 也能使用其他語法來產生陣列、雜湊(Hash)、範圍(Range)、序組(Tuple)……等物件。

results matching ""

    No results matching ""