| // run | |
| // Copyright 2021 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package main | |
| func main() { | |
| d := diff([]int{}, func(int) string { | |
| return "foo" | |
| }) | |
| d() | |
| } | |
| func diff[T any](previous []T, uniqueKey func(T) string) func() { | |
| return func() { | |
| newJSON := map[string]T{} | |
| for _, prev := range previous { | |
| delete(newJSON, uniqueKey(prev)) | |
| } | |
| } | |
| } |