Hi, Rangding. This is a known issue, tracked by SR-1846 
<https://bugs.swift.org/browse/SR-1846>. Essentially the compiler is not smart 
enough to know that you mean the existing function 'data' rather than the 
variable you are defining.

Best,
Jordan


> On Oct 27, 2016, at 19:06, 张让定 via swift-users <swift-users@swift.org> wrote:
> 
> Dear Sir/madam,
> I have a fuction:
> 
> import Foundation
> 
> public func data(with string:String?) -> Data? {
>     if let string = string {
>         return string.data(using: String.Encoding.utf8)
>     }
>     return nil
> }
> When I use it like:
> 
> let data = data(with: "Hello")
> There is a compile error: variable used within it's own initial value.
> 
> If write like:
> 
> let stringData = data(with: "Hello")
> Everything is OK.
> 
> So I wonder why not support the syntax like:
> 
> let data = data(with: "Hello")
> 
> Yours sincerely
> Rangding Zhang
> 
> 
>  
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org <mailto:swift-users@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-users 
> <https://lists.swift.org/mailman/listinfo/swift-users>
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to