• RTMP协议web直播点播平台EasyDSS对接云服务Go 语言中 do while 语句的实现方法


    EasyDSS是TSINGSEE青犀视频开发的RTMP推流平台,能够对接腾讯云、阿里云等云服务,并且提供编程语言无关化的RESTfulAPI接口,可以很简单的进行二次开发和应用。

    在EasyDSS的开发对接第三方金山云、阿里云等云服务功能的过程中,Go 层需要从远端获取数据,收到云服务返回的结果,根据结果判断是否需要发送下一次请求。

    在该交互过程中,如果第一次返回结果说明数据已经被读取完毕,则直接跳出循环。如果第一次返回结果说明数据没有被读取完毕,则发出下一次请求。即至少发送一次请求,类似代码实现如下:

    int i = 1;
    do{
       System.out.println("好好学习!");
       i++;
    }while(i<=100);
    

    但是在 Go 语言中无此操作,仅有 for 关键词,因此需要使用 for 关键词实现 do while 的功能。代码如下

    var i int64 = 1
    for {
       req := vs.CreateDescribeGroupsRequest()
       req.PageNum = requests.NewInteger64(i)
       res := gClientVS.DescribeGroups(vs.CreateDescribeGroupsRequest())
    
       for _, group := range res.Groups {
          gProcessSpaceChan <- group
       }
    
       if i >= res.PageCount {
          break
       }
    
       i++
    }
    

    以上代码为获取数据后,判断返回结果,如果i已经比剩余数据大,则退出循环。代码至少会执行一次,因此实现了 do while 功能。

    当然了,EasyDSS内还运用了很多其他层面的开发技巧,大家可以关注我们,我们将在博客内不定期更新。如果还想了解EasyDSS更多相关内容,欢迎联系我们或者直接访问TSINGSEE青犀视频官方网站。

  • 相关阅读:
    js中的数组
    range关键字,map,sync.Map,list
    数组,切片
    类型转换,指针,变量的生命周期,常量,模拟枚举,类型别名和类型定义
    字符串类型及其常用操作
    整数类型,浮点类型,复数,bool类型
    声明,初始化,匿名变量,作用域
    C#并发编程——异步编程基础
    继承、多态、接口
    C#基础
  • 原文地址:https://www.cnblogs.com/easydss/p/14283132.html
Copyright © 2020-2023  润新知