mirror of
https://gitee.com/johng/gf
synced 2026-06-06 02:25:47 +08:00
add Unsafe* functions for gconv
This commit is contained in:
17
util/gconv/gconv_unsafe.go
Normal file
17
util/gconv/gconv_unsafe.go
Normal file
@ -0,0 +1,17 @@
|
||||
// Copyright 2017 gf Author(https://github.com/gogf/gf). All Rights Reserved.
|
||||
//
|
||||
// This Source Code Form is subject to the terms of the MIT License.
|
||||
// If a copy of the MIT was not distributed with this file,
|
||||
// You can obtain one at https://github.com/gogf/gf.
|
||||
|
||||
package gconv
|
||||
|
||||
import "unsafe"
|
||||
|
||||
func UnsafeStrToBytes(s string) []byte {
|
||||
return *(*[]byte)(unsafe.Pointer(&s))
|
||||
}
|
||||
|
||||
func UnsafeBytesToStr(b []byte) string {
|
||||
return *(*string)(unsafe.Pointer(&b))
|
||||
}
|
||||
25
util/gconv/gconv_z_unit_unsafe_test.go
Normal file
25
util/gconv/gconv_z_unit_unsafe_test.go
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright 2018 gf Author(https://github.com/gogf/gf). All Rights Reserved.
|
||||
//
|
||||
// This Source Code Form is subject to the terms of the MIT License.
|
||||
// If a copy of the MIT was not distributed with this file,
|
||||
// You can obtain one at https://github.com/gogf/gf.
|
||||
|
||||
package gconv_test
|
||||
|
||||
import (
|
||||
"github.com/gogf/gf/test/gtest"
|
||||
"github.com/gogf/gf/util/gconv"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func Test_Unsafe(t *testing.T) {
|
||||
gtest.Case(t, func() {
|
||||
s := "John爱中国"
|
||||
gtest.AssertEQ(gconv.UnsafeStrToBytes(s), []byte(s))
|
||||
})
|
||||
|
||||
gtest.Case(t, func() {
|
||||
b := []byte("John爱中国")
|
||||
gtest.AssertEQ(gconv.UnsafeBytesToStr(b), string(b))
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user