To be very exact, this case would actually cause a fault, and is a good 
example of why manual management here is best not allowed:

```go
func loop(someSlice []int) {
  for _, x := range someSlice {
    use(x)
    markDelete(x)
  }
}
```

Even though you specified for x := range ..., inside the for loop, x is 
reused. It gets allocated once, when we enter the for loop and reused (with 
just another value assigned) as we iterate through it. Got me by surprise 
since it's := and I was trying to use its pointer &x to find I was reusing 
the same pointer.

On Friday, May 28, 2021 at 8:48:01 AM UTC+1 qq451...@gmail.com wrote:

> yes, i immediately got the point(it is far different from golang ) after i 
> type these words.
> so sorry to disturb 
>
> On Friday, May 28, 2021 at 3:39:25 PM UTC+8 Jesse McNelis wrote:
>
>> On Fri, May 28, 2021 at 4:51 PM cheng dong <qq451...@gmail.com> wrote:
>>
>>> Thank you for the clarification.
>>> sorry to break the general rule, i'm new to golang-nuts
>>>
>>> as to the question, i figured out i used wrong words, what i need in 
>>> fact is1. a hint to tell compiler that some object are safe to alloc on 
>>> stack(in case that we use it as interface so it escape from stack) 2. some 
>>> concept like unique ptr that when it end it's life time, the object 
>>> referenced can be deallocated immediately.
>>>
>>
>> For Go to be memory safe the compiler can't trust your hint because you 
>> could be wrong either by a mistake or by changes to future code 
>> invalidating some assumption you had.
>> A feature like Rust's unique pointers (and thus also borrowing and 
>> lifetimes) would require large changes to the language and completely 
>> change what Go is.
>>
>> If you want the features of Rust then use Rust.
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/450a2f92-7e3a-45ac-94a7-e344f1bbad25n%40googlegroups.com.

Reply via email to