My apologies for the link. Google groups on mobile isn’t really working. 
https://girhub.com/Skarlso/tuple

On Friday 9 August 2024 at 07:57:33 UTC+2 Gergely Brautigam wrote:

> Hello.
>
> I actually implemented a Tupke logic here https://github.con/Skarlso/tuple
> . 
>
> I find this a much better way to deal with tuples instead of the indexing 
> logic. And it’s using generics as well. Feel free to borrow stuff. 😊
>
> On Friday 9 August 2024 at 02:19:22 UTC+2 Jolyon Direnko-Smith wrote:
>
>> My $0.02 on this
>>
>> First, to address the use cases in your question, Golang does not have 
>> custom operators so the value of tuples in assisting with their 
>> implementation is moot. (and, IMHO, should resist incorporating them; 
>> someone should not have to consult the source for a type to understand 
>> whether what should be a standard operator works in an expected and 
>> intuitive way or implements some exotic behaviour for the convenience of a 
>> "clever" implementation).
>>
>> Second, you don't need to implement a custom == operator to compare 
>> custom struct types; the implementation of == in Golang already covers the 
>> comparison of structured value types in a logical, intuitive and type-safe 
>> manner.
>>
>> []any could be a perfectly good representation of a tuple in some cases, 
>> but context is king.  Personally, I would resist the temptation to create a 
>> "tuple type/package" to cater for all possible use cases.
>>
>> If a project requires tuples of any type with support for equality 
>> testing then implement a tuple type (in that project) to support what that 
>> project needs (and nothing more); it will be trivial (type tuple []any, 
>> with an Equals(tuple) bool method to perform the equality tests).  If a 
>> different project requires tuples which support a mix of strings and ints 
>> and "greater-than"/"less-than" comparison support then implement an 
>> appropriate tuple type for that use case.  The Equals() method for the 
>> latter will be slightly more complicated than the first, but still far 
>> simpler to implement than a fully versatile tuple type.
>>
>> If a project requires different tuple capabilities in different use cases 
>> then implement appropriate, distinct tuple types for each use case.  A 
>> bonus feature of this approach: you won't be able to inadvertently use "a 
>> tuple of any type supporting equality", where your code requires "a tuple 
>> of string/int supporting gt/lt comparison".
>>
>> ymmv
>> On Friday 9 August 2024 at 07:41:00 UTC+12 Jan Mercl wrote:
>>
>>> On Thu, Aug 8, 2024 at 9:35 PM 'lijh8' via golang-nuts 
>>> <golan...@googlegroups.com> wrote: 
>>>
>>> > I try to use slice of any to imitate the tuple type, 
>>> > and use this function to compare two slices: a, b. 
>>> > 
>>> > How can I improve it? 
>>>
>>> Take a look at https://pkg.go.dev/slices#Compare if it can fit your use 
>>> case. 
>>>
>>

-- 
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/8237baf9-f60f-47c4-b1b3-f43019592992n%40googlegroups.com.

Reply via email to