That wasn't literal code with anglebrackets - you're supposed to fill that 
in yourself.  I think he meant something like:

type fooString struct{ string }

https://go.dev/play/p/4Q94xMZDciV

What this is doing is *embedding* a string value into a struct; if you have 
not come across type embedding before then Google for the details.

You still cannot use one of these types transparently as a string, but you 
can use
    x.string
instead of
    string(x)
to extract the value.

On Friday, 1 April 2022 at 06:48:04 UTC+1 yan.z...@gmail.com wrote:

> Hi Sam! Your solution does not seem to work:
>
> package main
>
> import(
>     "fmt"
>     "strconv"
>     )
>
> type <Purpose> String struct{string}
>
> func (s String) print(){
>     fmt.Println(s)
> }
>
> func main() {
>    var a String ="hello, world\n"
>
>    a.print()
>    
>    fmt.Println(strconv.ParseInt("78",10, 64))
>    
>    var x String ="452"
>
>    n, _ := strconv.ParseInt(x, 10, 64)
> }
>
> 在2022年3月26日星期六 UTC+8 06:41:15<sam.a....@gmail.com> 写道:
>
>>
>> My workaround like is something like `type <Purpose>String 
>> struct{string}. It can be reasonably treated as a string for most cases in 
>> which as string is needed, and it lets you convert back conveniently from 
>> any scope in which it's reasonable for your program to know the difference.
>> On Friday, March 18, 2022 at 12:46:34 AM UTC-5 Henry wrote:
>>
>>> My own preference is to have a small number of methods and put the 
>>> general functionalities into functions. By putting the general 
>>> functionalities into functions, you allow code reuse. In object-oriented 
>>> programming, you normally attach as many functionalities as possible to 
>>> their corresponding types and achieve code reuse via inheritance. Since Go 
>>> does not have inheritance, you can achieve a similar effect with standalone 
>>> functions. 
>>>
>>> On Friday, March 18, 2022 at 11:26:51 AM UTC+7 Ian Lance Taylor wrote:
>>>
>>>> On Thu, Mar 17, 2022 at 7:17 PM Zhaoxun Yan <yan.z...@gmail.com> 
>>>> wrote: 
>>>> > 
>>>> > I just came across this taboo in golang - new methods cannot be added 
>>>> to an existing type: 
>>>>
>>>> Yes. If we didn't have this prohibition, then the set of interfaces 
>>>> satisfied by a type would depend on which package was using the type. 
>>>>
>>>> See the discussion at https://go.dev/issue/21401. 
>>>>
>>>> Ian 
>>>>
>>>

-- 
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/f5ce43c5-f120-47b2-8955-7005432416ban%40googlegroups.com.

Reply via email to