小编Bel*_*gor的帖子

所有变量名称中是否应始终包含测量单位?

对于是否应该在变量中包含测量单位,我看到了一些不同的观点,并且我不太确定如何处理极端情况。

例如,如果我有一个变量存储从加速度计获得的“加速度”,我是否必须在变量名称中明确说明其测量单位,即米/秒平方?

Double acceleration; // m/s^2
// or this
Double accelerationMetersPerSecondSquared
// or maybe this
Double accelerationMeterPerSecSqr
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我担心的是,如果测量单位很复杂,并且如果它是已知单位为 m/s^2 的加速度之类的变量名称,那么变量名称可能会变得很长,是否有必要使用它?

当然,在其他情况下,有必要有测量单位,例如有一个变量来存储时间。

int time; // time in what unit??
// this is more clear
int timeInSeconds;
Run Code Online (Sandbox Code Playgroud)

java naming-conventions

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

如何在Android应用程序中将文件创建到特定文件夹?

在我的应用程序中,我想在缓存文件夹中创建一个文本文件,首先要做的是在缓存目录中创建一个文件夹。

File myDir = new File(getCacheDir(), "MySecretFolder");
myDir.mkdir();
Run Code Online (Sandbox Code Playgroud)

然后,我想使用以下似乎不在该文件夹中创建的代码在该文件夹中创建一个文本文件。而是,下面的代码在与“缓存”文件夹相同目录的“文件”文件夹中创建文本文件。

FileOutputStream fOut = null;
            try {
                fOut = openFileOutput("secret.txt",MODE_PRIVATE);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            String str = "data";
            try {
                fOut.write(str.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                fOut.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何正确地指定“ MySecretFolder”来制作文本文件?

我尝试了以下方法:

“ /data/data/com.example.myandroid.cuecards/cache/MySecretFolder”,但是如果我尝试这样做,它会使我的整个应用程序崩溃。我该如何正确地将文本文件保存在cache / MySecretFolder中

android

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

如何对同一端点并行进行多个 API 调用并将所有响应合并到输出数组中?

目前在我的 Kotlin 代码中,我有一个用户数组,我执行一个 for 循环并对每个用户的信息发出 GET 请求,然后将他们的信息添加到 MutableList 中。每当有新的用户信息发布到列表中时,我都会观察该列表并更新我的用户界面。

但我想知道如何同时执行所有用户调用并等待最终结果并立即发布 UI?

kotlin rx-java retrofit kotlin-coroutines

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

你如何在C中像Python一样乘以一个角色?

我来自Python背景,我知道在Python中你可以这样做:

'g'*8
gggggggg
Run Code Online (Sandbox Code Playgroud)

现在,我知道您可以执行for循环以在C中获得相同的结果,但是实际上有一种方法可以在C中乘以字符串和字符吗?

c

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

如何找到此代码块的时间复杂度(Big O)?

我试图理解这个O符号是如何工作的,我在这里有一个代码块,在每个LINE旁边,我将评论我认为它的时间复杂度.如果我错了,请纠正我并解释为什么我的逻辑不正确.

代码#1

for (int i = 0; i < n; i++) <<<<<<<<<<<<<<<<<<< O(1)*O(N)
 {
    for (int j = 0; j < 3; j++) <<<<<<<<<<<<<<< O(1)*O(1)
      {
        for (int k = 0; k < 3; k++) <<<<<<<<<<<<<<O(1)*O(1)
          {
            printf("%d", arr[i]); <<<<<<<<<<<<<<O(1)
           }
        printf("\n"); <<<<<<<<<<<<<<<<<<O(1)
    }

}
Run Code Online (Sandbox Code Playgroud)

添加所有内容后,运行时间= O(N).

代码#2

for (int i = 2; i <= n; i++) <<<<<<<<<<<<O(1)*O(N)
{
        int j;<<<<<<<<<<<<<<<<<<<<<<<O(1)
        printf("\n%d:", i);<<<<<<<<<<<<<<O(1)
        for(j = 2; j <= i; j = j * 2) <<<<<<<<<<<O(n-2)??????????
        {
            printf("%d ", j);<<<<<<<<<<<<<<O(1)
        } …
Run Code Online (Sandbox Code Playgroud)

c c++ big-o

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

Android:通过 LiveData 进行数据绑定检查和取消选中开关按钮

我目前正在尝试使用数据绑定来设置“切换”按钮的检查状态,但由于某种原因我的状态永远不会改变?

在我的设置页面中,我执行以下操作:

  1. 检查开关是否为 true
  2. 将值发布到我的 livedata 变量
  3. 退出设置页面
  4. 重新输入设置
  5. 应该检查 Switch,因为在我的 XML 中我绑定到它,但它是 false。

文件- SettingsFragment - SettingsViewModel - SettingsLayout.XML

设置视图模型

    private val _checked = MutableLiveData<Boolean>()
    val checked : LiveData<Boolean> = _checked
Run Code Online (Sandbox Code Playgroud)

设置布局.XML

                <Switch
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="right|center"
                android:layout_marginRight="@dimen/margin_big
                android:checked="@{viewModel.checked}"/>
Run Code Online (Sandbox Code Playgroud)

我已经仔细检查以确保在我的SettingsFragment中我也执行了DataBindingUtil.inflate并传递了我的 SettingsViewModel。

android button kotlin android-databinding

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

如何将stl字符串的索引传递给c ++中的函数?

我目前遇到一个小问题,我想在std :: string中交换内容.

#include <iostream>
#include <string>

void swap(char* t1, char* t2);    // function parameter is wrong syntax
int main(){
    std::string message = "ABC";
    swap(message[0], message[1]); // parameter probably wrong here
    return 0;
}



void swap(char * t1, char * t2){
 return; 
}
Run Code Online (Sandbox Code Playgroud)

目标:我希望对索引0和1中的内容进行简单交换,以便在交换之后,消息"ABC"变为"BAC".正如你所看到的,我试着这样做,就像我使用普通数组一样,但似乎这种逻辑不能用于字符串.我明白,如果我切换到

char a[] = "ABC";
Run Code Online (Sandbox Code Playgroud)

它会工作,但我想尝试使用字符串类.

c++ string

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