V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
ravenZ
V2EX  ›  Swift

Swift 泛型的入参没有显式用到..有种很难受的感觉..

  •  
  •   ravenZ · Sep 1, 2022 · 2034 views
    This topic created in 1338 days ago, the information mentioned may be changed or developed.
    func mapModel<T: HandyJSON>(_ type: T.Type) throws -> T {
    let jsonString = String(data: data, encoding: .utf8)
    guard let model = JSONDeserializer<T>.deserializeFrom(json: jsonString) else {
    throw MoyaError.jsonMapping(self)
    }
    return model
    }

    这里的 type 作为入参.却只隐式定义了 T 的类型...

    问问大佬们
    现在有新的写法吗?
    还是要这么玩就必须得这么写?
    3 replies    2022-09-01 11:59:54 +08:00
    ravenZ
        1
    ravenZ  
    OP
       Sep 1, 2022
    ....我自己想了一下..
    直接这么写就好了... 优雅了.歧义没了..作用也达到了...

    func mapModel<T: HandyJSON>(_: T.Type) throws -> T {
    ...
    }
    s524256521
        2
    s524256521  
       Sep 1, 2022 via Android
    extension HandyJson
    kera0a
        3
    kera0a  
       Sep 1, 2022
    直接不要这个参数也行吧,调用方式则为
    let model:XX = data.mapModel()
    let model = data.mapModel<XX>()

    和现在的调用方式差不多
    let mod = data.mapModel(XX.self)
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2501 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 07:03 · PVG 15:03 · LAX 00:03 · JFK 03:03
    ♥ Do have faith in what you're doing.