本文整理汇总了Golang中github.com/PuerkitoBio/agora/runtime.String函数的典型用法代码示例。如果您正苦于以下问题:Golang String函数的具体用法?Golang String怎么用?Golang String使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了String函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestOsOpen
func TestOsOpen(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
om := new(OsMod)
om.SetCtx(ctx)
fn := "./testdata/readfile.txt"
f := om.os_Open(runtime.String(fn))
fl := f.(*file)
ret := fl.Get(runtime.String("Name"))
if ret.String() != fn {
t.Errorf("expected Name to be '%s', got '%s'", fn, ret)
}
exp := "ok"
ret = fl.readLine()
if ret.String() != exp {
t.Errorf("expected read line 1 to be '%s', got '%s'", exp, ret)
}
exp = ""
ret = fl.readLine()
if ret.String() != exp {
t.Errorf("expected read line 2 to be '%s', got '%s'", exp, ret)
}
ret = fl.readLine()
if ret != runtime.Nil {
t.Errorf("expected read line 3 to be nil, got '%v'", ret)
}
ret = fl.closeFile()
if ret != runtime.Nil {
t.Errorf("expected close file to be nil, got '%v'", ret)
}
}
示例2: strings_Matches
// Args:
// 0 - The string
// 1 - The regexp pattern
// 2 - (optional) a maximum number of matches to return
//
// Returns:
// An object holding all the matches, or nil if no match.
// Each match contains:
// n - The nth match group (when n=0, the full text of the match)
// Each match group contains:
// start - the index of the start of the match
// end - the end of the match
// text - the string of the match
func (s *StringsMod) strings_Matches(args ...runtime.Val) runtime.Val {
runtime.ExpectAtLeastNArgs(2, args)
src := args[0].String()
rx := regexp.MustCompile(args[1].String())
n := -1 // By default, return all matches
if len(args) > 2 {
n = int(args[2].Int())
}
strmtch := rx.FindAllStringSubmatch(src, n)
if strmtch == nil {
return runtime.Nil
}
ixmtch := rx.FindAllStringSubmatchIndex(src, n)
ob := runtime.NewObject()
for i, mtches := range strmtch {
obch := runtime.NewObject()
for j, mtch := range mtches {
leaf := runtime.NewObject()
leaf.Set(runtime.String("Text"), runtime.String(mtch))
leaf.Set(runtime.String("Start"), runtime.Number(ixmtch[i][2*j]))
leaf.Set(runtime.String("End"), runtime.Number(ixmtch[i][2*j+1]))
obch.Set(runtime.Number(j), leaf)
}
ob.Set(runtime.Number(i), obch)
}
return ob
}
示例3: TestStringsSplit
func TestStringsSplit(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
sm := new(StringsMod)
sm.SetCtx(ctx)
ret := sm.strings_Split(runtime.String("aa:bb::dd"), runtime.String(":"))
ob := ret.(runtime.Object)
exp := []string{"aa", "bb", "", "dd"}
if l := ob.Len().Int(); l != int64(len(exp)) {
t.Errorf("expected split length of %d, got %d", len(exp), l)
}
for i, v := range exp {
got := ob.Get(runtime.Number(i))
if got.String() != v {
t.Errorf("expected split index %d to be %s, got %s", i, v, got)
}
}
ret = sm.strings_Split(runtime.String("aa:bb::dd:ee:"), runtime.String(":"), runtime.Number(2))
ob = ret.(runtime.Object)
exp = []string{"aa", "bb::dd:ee:"}
if l := ob.Len().Int(); l != int64(len(exp)) {
t.Errorf("expected split length of %d, got %d", len(exp), l)
}
for i, v := range exp {
got := ob.Get(runtime.Number(i))
if got.String() != v {
t.Errorf("expected split index %d to be %s, got %s", i, v, got)
}
}
}
示例4: createFileInfo
func createFileInfo(fi os.FileInfo) runtime.Val {
o := runtime.NewObject()
o.Set(runtime.String("Name"), runtime.String(fi.Name()))
o.Set(runtime.String("Size"), runtime.Number(fi.Size()))
o.Set(runtime.String("IsDir"), runtime.Bool(fi.IsDir()))
return o
}
示例5: TestOsFields
func TestOsFields(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
om := new(OsMod)
om.SetCtx(ctx)
ob, err := om.Run()
if err != nil {
panic(err)
}
{
ob := ob.(runtime.Object)
ret := ob.Get(runtime.String("PathSeparator"))
exp := string(os.PathSeparator)
if ret.String() != exp {
t.Errorf("expected path separator %s, got %s", exp, ret.String())
}
ret = ob.Get(runtime.String("PathListSeparator"))
exp = string(os.PathListSeparator)
if ret.String() != exp {
t.Errorf("expected path list separator %s, got %s", exp, ret.String())
}
ret = ob.Get(runtime.String("DevNull"))
exp = os.DevNull
if ret.String() != exp {
t.Errorf("expected dev/null %s, got %s", exp, ret)
}
ret = ob.Get(runtime.String("TempDir"))
exp = os.TempDir()
if ret.String() != exp {
t.Errorf("expected temp dir %s, got %s", exp, ret)
}
}
}
示例6: TestFilepathBaseDirExt
func TestFilepathBaseDirExt(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
fm := new(FilepathMod)
fm.SetCtx(ctx)
p, e := filepath.Abs("./testdata/readfile.txt")
if e != nil {
panic(e)
}
// Base
exp := filepath.Base(p)
ret := fm.filepath_Base(runtime.String(p))
if ret.String() != exp {
t.Errorf("expected base '%s', got '%s'", exp, ret.String())
}
// Dir
exp = filepath.Dir(p)
ret = fm.filepath_Dir(runtime.String(p))
if ret.String() != exp {
t.Errorf("expected dir '%s', got '%s'", exp, ret.String())
}
// Ext
exp = filepath.Ext(p)
ret = fm.filepath_Ext(runtime.String(p))
if ret.String() != exp {
t.Errorf("expected extension '%s', got '%s'", exp, ret.String())
}
}
示例7: TestTimeConv
func TestTimeConv(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
tm := new(TimeMod)
tm.SetCtx(ctx)
nw := time.Now().UTC()
n := tm.time_Date(runtime.Number(nw.Year()),
runtime.Number(nw.Month()),
runtime.Number(nw.Day()),
runtime.Number(nw.Hour()),
runtime.Number(nw.Minute()),
runtime.Number(nw.Second()),
runtime.Number(nw.Nanosecond()))
ob := n.(runtime.Object)
cnv := ob.Get(runtime.String("__string"))
f := cnv.(runtime.Func)
ret := f.Call(nil)
exp := nw.Format(time.RFC3339)
if ret.String() != exp {
t.Errorf("expected string to return '%s', got '%s'", exp, ret)
}
cnv = ob.Get(runtime.String("__int"))
f = cnv.(runtime.Func)
ret = f.Call(nil)
{
exp := nw.Unix()
if ret.Int() != int64(exp) {
t.Errorf("expected int to return %d, got %d", exp, ret.Int())
}
}
}
示例8: TestStringsTrim
func TestStringsTrim(t *testing.T) {
cases := []struct {
args []runtime.Val
exp string
}{
0: {
args: []runtime.Val{
runtime.String(" "),
},
exp: "",
},
1: {
args: []runtime.Val{
runtime.String("\n \t hi \r"),
},
exp: "hi",
},
2: {
args: []runtime.Val{
runtime.String("xoxolovexox"),
runtime.String("xo"),
},
exp: "love",
},
}
ctx := runtime.NewCtx(nil, nil)
sm := new(StringsMod)
sm.SetCtx(ctx)
for i, c := range cases {
ret := sm.strings_Trim(c.args...)
if ret.String() != c.exp {
t.Errorf("[%d] - expected %s, got %s", i, c.exp, ret)
}
}
}
示例9: TestMin
func TestMin(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
mm := new(MathMod)
mm.SetCtx(ctx)
cases := []struct {
src []runtime.Val
exp runtime.Val
}{
0: {
src: []runtime.Val{runtime.Number(3), runtime.Number(0), runtime.Number(-12.74), runtime.Number(1)},
exp: runtime.Number(-12.74),
},
1: {
src: []runtime.Val{runtime.String("24"), runtime.Bool(true), runtime.Number(12.74)},
exp: runtime.Number(1),
},
2: {
src: []runtime.Val{runtime.Number(0), runtime.String("0")},
exp: runtime.Number(0),
},
}
for i, c := range cases {
ret := mm.math_Min(c.src...)
if ret != c.exp {
t.Errorf("[%d] - expected %f, got %f", i, c.exp.Float(), ret.Float())
}
}
}
示例10: sub
func (v *agoraVec) sub(args ...runtime.Val) runtime.Val {
v2 := args[0].Native().(*agoraVec)
x := v.Get(runtime.String("X")).Float()
y := v.Get(runtime.String("Y")).Float()
x2 := v2.Get(runtime.String("X")).Float()
y2 := v2.Get(runtime.String("Y")).Float()
return v.jm.newVec(x-x2, y-y2)
}
示例11: strings_ByteAt
// Args:
// 0 - The source string
// 1 - The 0-based index number
//
// Returns:
// The character at that position, as a string, or an empty string if
// the index is out of bounds.
func (s *StringsMod) strings_ByteAt(args ...runtime.Val) runtime.Val {
runtime.ExpectAtLeastNArgs(2, args)
src := args[0].String()
at := int(args[1].Int())
if at < 0 || at >= len(src) {
return runtime.String("")
}
return runtime.String(src[at])
}
示例12: TestStringsToUpper
func TestStringsToUpper(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
sm := new(StringsMod)
sm.SetCtx(ctx)
ret := sm.strings_ToUpper(runtime.String("this"), runtime.String("Is"), runtime.String("A"), runtime.String("... strInG"))
exp := "THISISA... STRING"
if ret.String() != exp {
t.Errorf("expected %s, got %s", exp, ret)
}
}
示例13: TestOsExec
func TestOsExec(t *testing.T) {
ctx := runtime.NewCtx(nil, nil)
om := new(OsMod)
om.SetCtx(ctx)
exp := "hello"
ret := om.os_Exec(runtime.String("echo"), runtime.String(exp))
// Shell adds a \n after output
if ret.String() != exp+"\n" {
t.Errorf("expected '%s', got '%s'", exp, ret)
}
}
示例14: Run
func (t *TimeMod) Run(_ ...runtime.Val) (v runtime.Val, err error) {
defer runtime.PanicToError(&err)
if t.ob == nil {
// Prepare the object
t.ob = runtime.NewObject()
t.ob.Set(runtime.String("Date"), runtime.NewNativeFunc(t.ctx, "time.Date", t.time_Date))
t.ob.Set(runtime.String("Now"), runtime.NewNativeFunc(t.ctx, "time.Now", t.time_Now))
t.ob.Set(runtime.String("Sleep"), runtime.NewNativeFunc(t.ctx, "time.Sleep", t.time_Sleep))
}
return t.ob, nil
}
示例15: Run
func (f *FmtMod) Run(_ ...runtime.Val) (v runtime.Val, err error) {
defer runtime.PanicToError(&err)
if f.ob == nil {
// Prepare the object
f.ob = runtime.NewObject()
f.ob.Set(runtime.String("Print"), runtime.NewNativeFunc(f.ctx, "fmt.Print", f.fmt_Print))
f.ob.Set(runtime.String("Println"), runtime.NewNativeFunc(f.ctx, "fmt.Println", f.fmt_Println))
f.ob.Set(runtime.String("Scanln"), runtime.NewNativeFunc(f.ctx, "fmt.Scanln", f.fmt_Scanln))
f.ob.Set(runtime.String("Scanint"), runtime.NewNativeFunc(f.ctx, "fmt.Scanint", f.fmt_Scanint))
}
return f.ob, nil
}