Indeed. Don't do this – your code will definitely break in the future if you do this.
On Wed, Aug 17, 2016 at 1:18 PM, ggggg <[email protected]> wrote: > Isn't it a red herring to say that strings lack setindex because they are > immutable? I think strings don't have setindex! because it is considered to > be a bad API choice, at least partially because you can't do O(1) indexing > for many string encodings. > > I can easily define a setindex! method* that does what the OP is > expecting, so how can this be related to strings being immutable? > > *julia> **Base.setindex!(s::ASCIIString, v,i) = s.data[i]=v* > > *setindex! (generic function with 58 methods)* > > *julia> **a="abc"* > > *"abc"* > > *julia> **a[1]='7';a* > > *"7bc"* > > *julia> **a[1]+=1;a* > > *"8bc"* > > *This works in 0.4, and I'm lead to believe this is considered a bad idea. > > On Wednesday, August 17, 2016 at 12:40:36 AM UTC-6, Jacob Quinn wrote: >> >> Strings are immutable (similar to other languages). There are several >> different ways to get what you want, but I tend to utilize IOBuffer a lot: >> >> a = "abcd" >> io = IOBuffer() >> >> for char in a >> write(io, a + 1) >> end >> >> println(takebuf_string(io)) >> >> -Jacob >> >> On Wed, Aug 17, 2016 at 12:30 AM, Rishabh Raghunath <[email protected]> >> wrote: >> >>> >>> Hello fellow Julia Users!! >>> >>> How do you manipulate the individual characters comprising a string in >>> Julia using a for loop ? >>> For example: >>> ################### >>> >>> a = "abcd" >>> >>> for i in length(a) >>> a[i]+=1 >>> end >>> >>> print(a) >>> >>> #################### >>> I am expecting to get my EXPECTED OUTPUT as " bcde " >>> >>> BUT I get the following error: >>> ########################################## >>> >>> ERROR: MethodError: `setindex!` has no method matching >>> setindex!(::ASCIIString, ::Char, ::Int64) >>> [inlined code] from ./none:2 >>> in anonymous at ./no file:4294967295 >>> >>> ########################################## >>> I also tried using: >>> >>> for i in eachindex(a) instead of the for loop in the above program .. >>> And I get the same error.. >>> >>> Please tell me what i should do to get my desired output .. >>> Please respond ASAP.. >>> Thanks.. >>> >> >>
