问题列表 - 第303135页

在 extern "C" 声明中“玩”参数常量是否安全?

假设我正在使用一些具有函数的 C 库:

int foo(char* str);
Run Code Online (Sandbox Code Playgroud)

我知道一个事实,即foo()不会修改str. 它只是写得不好,也懒得声明str为常量。

现在,在我的 C++ 代码中,我目前有:

extern "C" int foo(char* str);
Run Code Online (Sandbox Code Playgroud)

我像这样使用它:

foo(const_cast<char*>("Hello world"));
Run Code Online (Sandbox Code Playgroud)

我的问题:原则上,从语言律师的角度来看,在实践中,我这样写是否安全:

extern "C" int foo(const char* str);
Run Code Online (Sandbox Code Playgroud)

并跳过const_cast'ing?

如果没有安全,请解释原因。

注意:我对 C++98 代码的情况特别感兴趣(是的,不幸的是我),所以如果你假设语言标准的更新版本,请这么说。

c c++ cross-language language-lawyer extern-c

7
推荐指数
1
解决办法
157
查看次数

单元测试和模拟,如何重置它们?

我正在测试一个需要在构造函数中进行模拟的类,所以我通常这样做:

class TestActionManager(unittest.TestCase):
    @patch('actionlib.SimpleActionClient', return_value=create_autospec(actionlib.SimpleActionClient))
    def setUp(self, mock1):
        self.action_manager = ActionManager()
Run Code Online (Sandbox Code Playgroud)

然后在这个类中我添加了所有测试。所以第一个工作正常

    def test_1(self):
        self.action_manager.f()
        self.action_manager.f.assert_called_once()
Run Code Online (Sandbox Code Playgroud)

但是如果我添加另一个测试并运行两者

    def test_2(self):
        self.action_manager.f()
        self.action_manager.f.assert_called_once()
Run Code Online (Sandbox Code Playgroud)

它说 f 已被调用两次。我本来希望 setUp 在开始每个测试之前创建一个新的 ActionManager (从而创建一个新的模拟),但显然这没有发生,因为模拟以某种方式共享。我也尝试这样做

def tearDown(self):
    del self.action_manager
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题。

我读过 Python 测试中相关的内容 - 重置所有模拟? 解决方案是使用不同的库(我想避免的事情)

并以任何方式将模拟方法重置为其原始状态?- Python Mock - 模拟 1.0b1,它使用不同的类来执行此操作。

是否有可能在每次测试之前或之后重置同一类中的模拟?

python python-unittest python-unittest.mock

12
推荐指数
1
解决办法
2万
查看次数

如何在没有桥接头的情况下在 Swift 中使用 Objective-C 框架?

我正在开发一个 Flutter 插件(用 Swift)尝试包装 Obj-C 框架。我能够导入 MyPlugin.h 文件中的标头文件,但现在如何在没有桥接标头的情况下使用该框架?我刚刚得到not found in scope

如果我要生成桥接标头,我会遇到另一个错误 using bridging headers with framework targets is unsupported

这是我的 podspec 文件,我必须将 DEFINES_MODULE 设置为 NO 才能构建项目而不会遇到Include of non-modular header inside framework module错误

Pod::Spec.new do |s|
  s.name             = 'lisnr'
  s.version          = '1.0.0'
  s.summary          = 'Flutter plugin for LISNR'
  s.description      = <<-DESC
  Flutter plugin for LISNR.
                       DESC
  s.homepage         = 'redacted'
  s.license          = { :file => '../LICENSE' }
  s.author           = { 'redacted' => 'redacted' }
  s.source           = { …
Run Code Online (Sandbox Code Playgroud)

objective-c cocoapods swift flutter flutter-plugin

0
推荐指数
1
解决办法
2144
查看次数

Vega-lite:轴中标签的换行或自动换行

我试图将 x 轴的标签包裹在下一行,因为标签长度很长。那么有没有什么办法可以实现呢。我尝试使用calculateandlabelExpr打破标签字符串,然后使用 '\n' 连接它们,但这似乎不起作用。

是否有任何其他配置可以帮助我实现此用例或任何解决方法?您可以在此处参考配置 - vega-lite

word-wrap vega-lite

5
推荐指数
1
解决办法
2296
查看次数

如何在 Laravel 中使用 Carbon 获取一年中的所有月份

我有一个简单的任务,但我对此有一些麻烦

Mb任何人都知道另一种方法如何使用Carbon获得一年中的所有月份

在这个问题中,我只需要月份的简称

此时我有下一个代码

$items = [];
$startMonth = Carbon::now()->startOfYear()->format('M');
$endMonth = Carbon::now()->endOfYear()->format('M');
$monthRange = CarbonPeriod::create($startMonth, '1 month', $endMonth);
foreach ($monthRange as $month){
   $items[] = Carbon::parse($month)->format('M');
}
Run Code Online (Sandbox Code Playgroud)

有没有不覆盖变量 $items 的解决方案

感谢帮助

php laravel

1
推荐指数
1
解决办法
8181
查看次数

AWS log Insigts 解析 NGINX 日志

我正在尝试使用 aws log Insights 对包含 nginx 日志的日志组运行查询。

这是我在 ec2 机器上设置的日志格式:

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
Run Code Online (Sandbox Code Playgroud)

NGINX 日志示例:

xx.xx.xx.xx - - [10/Nov/2020:15:28:30 +0530] "POST /xx HTTP/1.1" 200 57 "https://xxxx.in/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36" "-"
Run Code Online (Sandbox Code Playgroud)

我尝试使用日志见解和以下代码来解析它:

parse @message '* - - [*] "* * *" * * "-" "*"' as remote_addr, timestamp, request_type, location, protocol, response_code, body_bytes_sent
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Expression is invalid: parse@message'* - - …
Run Code Online (Sandbox Code Playgroud)

nginx amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights

7
推荐指数
1
解决办法
4610
查看次数

升级新的 Google Play Console 对 Play Console 中提供的应用许可证密钥生效

所有开发者都将在 2020 年 11 月 2 日获得新的 Google Play Console,请在此处输入链接说明。应用的许可证密钥是否在 Play 管理中心效果中可用?在此处输入图片说明 请帮我解释一下这个问题。谢谢你的帮助。

android in-app-billing in-app kotlin

2
推荐指数
1
解决办法
1117
查看次数

尝试在react js中显示上传图像的预览时出现图像为空的错误

我有这个功能可以上传多张图片并且它可以工作,现在我需要显示用户选择的所有图片的预览。我尝试使用mapforEach尝试循环并显示图像,但它不起作用。console.log(images)正在显示上传图片的 url,但images.map()images.ForEach正在抛出空错误。谁能告诉我这有什么问题?我是新手,所以需要一些帮助。

这是代码:

const fileObj = [];
const imageArray = [];
const [images, setImages] = useState(null); 

const uploadMultipleFiles = (e) => {
    if (e.target.name === 'images') {
        fileObj.push(e.target.files)
        for (let i = 0; i < fileObj[0].length; i++) {
            imageArray.push(URL.createObjectURL(fileObj[0][i]))
            // console.log(imageArray)
        }
        setImages({ images: imageArray })
    }
}

{console.log(images)}
<div className="form-group multi-preview">
  { {(imageArray || []).map(url => (
         <img src={url} alt="" />
      ))} 
  }
</div>
                    
 <label htmlFor="images">
      <input
         accept="image/*"
         className={classes.input} …
Run Code Online (Sandbox Code Playgroud)

javascript foreach rxjs reactjs react-native

4
推荐指数
1
解决办法
279
查看次数

以下哪个答案相当于 Ubuntu 14.04 LTS 上的 O_RDWR?

我得到了以下复选框的列表,其中包含在 Ubuntu 14.04 LTS 上选择与 O_RDWR 等效的所有真实答案的问题的所有可能解决方案。根据下面的列表

O_RDONLY

1

2

3

1 << 1

3 & 2

3 | 2

O_WRONLY

(O_RDONLY + O_WRONLY)

(O_RDONLY | O_WRONLY)

(O_RDONLY 和 O_WRONLY)

(O_RDONLY && O_WRONLY)

(O_RDONLY << 1)

(O_WRONLY << 1)

0

我选择了 2 和 (O_RDONLY | O_WRONLY) 但仍然收到错误

谁能帮我解决这个问题?

c c++ unix linux

2
推荐指数
1
解决办法
1万
查看次数

按 LocalDateTime 对流中的地图进行排序

我有地图Map<LocalDateTime, String>

如何按键值对其进行排序?我应该使用什么比较器?

someMap.entrySet().stream().sorted(Comparator.comparing(???))
Run Code Online (Sandbox Code Playgroud)

或者

someMap.entrySet().stream().sorted(??)
Run Code Online (Sandbox Code Playgroud)

我该如何解决?我应该写什么来代替“??” ?

排序:

Key                      Value
2020-01-09 09:57:58.631  Some info
2020-01-09 09:57:59.224  Some info
2020-01-09 09:59:03.144  Info
Run Code Online (Sandbox Code Playgroud)

不排序:

Key                     Value
2020-01-09 09:57:58.631  Some info
2020-01-09 09:59:03.144  Info
2020-01-09 09:57:59.224  Some info
Run Code Online (Sandbox Code Playgroud)

java sorting java-8 java-stream java-time

1
推荐指数
1
解决办法
201
查看次数