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..
>>>
>>
>>

Reply via email to