> On Apr 23, 2017, at 23:23, Rick Mann via swift-users <[email protected]> 
> wrote:
> 
> 
>> On Apr 22, 2017, at 12:23 , Saagar Jha <[email protected]> wrote:
>> 
>> 
>> Saagar Jha
>> 
>>> On Apr 21, 2017, at 04:35, Rick Mann via swift-users 
>>> <[email protected]> wrote:
>>> 
>>> I have a debugLog() method that looks like this:
>>> 
>>> func
>>> debugLog<T>(_ inMsg: T, _ inFile : String = #file, _ inLine : Int = #line)
>> 
>> Well, for starters, I don’t see why you need to make this function generic. 
>> Why not make inMsg an `Any?`?
> 
> So I can write debugLog(<something other than string>)
> 
>> 
>>> {
>>>    let df = DateFormatter()
>>>    df.dateFormat = "yyyy-MM-dd HH:mm:ss.SSS"
>>>    let time = df.string(from: Date())
>>>    
>>>    let file = (inFile as NSString).lastPathComponent
>>>    print("\(time) \(file):\(inLine)    \(inMsg)”)
>> 
>> Try \(inMsg ?? “nil”).
> 
> No, this is missing the point. I don't want to have to write this everywhere. 
> I just want to tell the compiler not to issue the warning in these cases, 
> much in the way you can tell the compiler to check printf format specifiers.

IIRC, Swift doesn't include a mechanism for suppressing warnings because we 
don't want to encourage different "dialects" of the language. The best I can 
offer for ignoring it is something like:
extension CustomStringConvertible {
  // for "pretty print"
  var pp: String {
    return self.description
  }
}
extension Optional where Wrapped: CustomStringConvertible {
  var pp: String {
    return self?.description ?? "nil"
  }
}
(written on my phone... might contain errors)

That way at least it's quicker to type, cleaner to read, and the code is the 
same between Optional and non-Optional types.

- Dave Sweeris


_______________________________________________
swift-users mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to