Tao Wen 7 éve
szülő
commit
b7d2eb37fe
1 módosított fájl, 21 hozzáadás és 2 törlés
  1. 21 2
      README.md

+ 21 - 2
README.md

@@ -41,12 +41,31 @@ valType.Set(&i, &j)
 // i will be 10
 ```
 
+to get set `type`, always use its pointer `*type`
+
 # reflect2 get/set unsafe.Pointer
 
 ```go
 valType := reflect2.TypeOf(1)
 i := 1
 j := 10
-valType.UnsafeSet(unsfae.Pointer(&i), unsafe.Pointer(&j))
+valType.UnsafeSet(unsafe.Pointer(&i), unsafe.Pointer(&j))
 // i will be 10
-```
+```
+
+to get set `type`, always use its pointer `*type`
+
+# benchmark
+
+Benchmark is not necessary for this package. It does nothing actually.
+As it is just a thin wrapper to make go runtime public. 
+Both `reflect2` and `reflect` call same function 
+provided by `runtime` package exposed by go language.
+
+# unsafe safety
+
+Instead of casting `[]byte` to `sliceHeader` in your application using unsafe.
+We can use reflect2 instead. This way, if `sliceHeader` changes in the future,
+only reflect2 need to be upgraded.
+
+reflect2 tries its best to keep the implementation same as reflect (by testing).