• 再见啦,Ruby on Rails at 2023年09月23日

    拿个简单易懂的生活举例,就骂人喷子?首先我没喷,第二,你先骂人

  • 再见啦,Ruby on Rails at 2023年09月20日

    你这么说就好像是,去朋友家做客,不喜欢朋友家里的装修风格,要求换成自己喜欢的,因为说不定你去住一两天呢

  • 我刚好相反,记得在公司地毯不小心洒了外卖,好像一个月内都有那个味,要是办公室空气流通不好,感觉到处都是灰尘

  • #23 楼 @darkbaby123Protocols 好像也要一条条地写每一个判断的 function, 就是不想一条条地写所以用一个循环,我这里纠结的地方在于

    如果不在循环里写,是可以用 宏创建一个 function 的:

    defmodule Mymacro do
      defmacro warp(type) do
        quote do
          def typeof(x) when unquote(:"is_#{type}")(x), do: unquote(type)
        end
      end
    end
    
    defmodule Util do
      import Mymacro
      warp("function")  
    end
    

    写在循环里就不行,就很纳闷:

    1. 到底有什么不同?
    2. 怎样动态地用宏创建 function?
  • @chenge 实现这样的功能,只是用宏来写循环了

    defmodule Util do
      def typeof(x) when is_function(x), do: "function"
      def typeof(x) when is_nil(x), do: "nil"
      def typeof(x) when is_integer(x), do: "integer"
      ...
    end
    
    Util.typeof 999
    #=> "integer"
    
    
  • #18 楼 @chenge 实现一个对象类型检查的 helper

  • 我想用 Macro 写个 typeof 的函数,但总是报错,这段代码要怎么改。。哎特 all

    defmodule Mymacro do
      defmacro warp(type) do
        quote do
          def typeof(x) when unquote(:"is_#{type}")(x), do: unquote(type)
        end
      end
    end
    
    defmodule Util do
      import Mymacro
      types = ~w[function nil integer binary bitstring list map float atom tuple pid port reference]
      for type <- types do
        warp(type)
      end
    end
    
  • Ember Data 概述 at 2015年12月09日

    lz 已经横屏了

  • 是时候使用 Mithril.js 了 at 2015年10月02日

    @nong 不知道为什么,基本不认同你所有观点 感觉写 ruby 的不用 coffeescript 就不会写 js 了

  • 后端 + 会点 js css 就叫全栈了?