On Thursday, 28 January 2016 at 13:36:46 UTC, Puming wrote:
I have a function that reads a line of string and do some computation.

I searched the forum and found that people use `const(char)[]` or `in char[]` to accept both string and char[] arguments.


What's the difference between `const(char)[]` and `in char[]`?

If they are not the same, then which is better? If they are, then why both forms exists?

`in char[]` is short for `scope const char[]` or `scope const(char[])`.

See http://dlang.org/spec/function.html#parameters

It depends on the situation. If possible I would use `in` modifier. If not then just `const`.

I found it a bit confusing and not quite readable, so I made an alias:

alias str = const(char)[]

and so far it works. But if `in char[]` is better, then I cannot alias it:

alias str = in char[]

this does not compile.

Please, don't define such aliases. I'm sure a lot of developers will find it confusing. As I do.

`const(char)[]` or `in char[]` is perfectly understandable as soon as you know what it means.

Also, read this: http://dlang.org/spec/const3.html

Reply via email to