zoukankan      html  css  js  c++  java
  • Clojure学习之defmulti

    1. defmulti  

      宏defmulti 和defmethod 经常被用在一起来定义 multimethod. 宏defmulti 的参数包括一个方法名以及一个dispatch函数,这个dispatch函数的返回值会被用来选择到底调用哪个重载的函数。宏defmethod 的参数则包括方法名,dispatch的值, 参数列表以及方法体。一个特殊的dispatch值:default 是用来表示默认情况的 — 即如果其它的dispatch值都不匹配的话,那么就调用这个方法。defmethod 多定义的名字一样的方法,它们的参数个数必须一样。传给multimethod的参数会传给dipatch函数的。实现类似java的重载

    示例:

    1 (defmulti what_am_i class)
    2 (defmethod what_am_i Number [args] (println args "is num"))
    3 (defmethod what_am_i String [args] (println args "is String"))
    4 (defmethod what_am_i :default [args] (println args "is default"))
    5 (what_am_i 19)
    6 (what_am_i "luochao")
    7 (what_am_i true)
  • 相关阅读:
    Win10 蓝屏
    XE Button Color
    IOS 屏幕尺寸
    Delphi 转圈 原型进度条 AniIndicator 及线程配合使用
    Delphi 询问框 汉化
    Delphi Android 询问框
    Delphi BLE 控件
    浮点高低位赋值
    delphi 蓝牙 TBluetoothLE
    16进制字节转换
  • 原文地址:https://www.cnblogs.com/sunfie/p/7401440.html
Copyright © 2011-2022 走看看