所以当我遇到这段C代码时,我正准备在印度参加入学考试
#include <stdio.h>
int main(void) {
static int i = 4;
if (--i) {
main();
printf("%d", i);
}
}
Run Code Online (Sandbox Code Playgroud)
我认为printf语句永远不会被执行,输出将是空白的.但我看到答案是0000,并且这是由于static关键字与int.
谁能解释为什么printf执行或者那个人错了?
我有一个Worker需要每24小时运行一次的实例,考虑到PeriodicWorkRequestAPI ,这很简单.但这是抓住了.
如果用户在下午8点开始工作,我需要工作管理器的第一个实例在第二天早上9点运行,然后遵循24小时定期约束.
我看了一下这里,我发现OneTimeWorkRequest API有一个setInitialDelay()可以使用的功能,但我无法找到任何PeriodicWorkAPI.
这是一些hacks,例如我可以使用OneTimeWork初始延迟,然后PeriodicWork从那里安排一个但是它有点肮脏的黑客.
有没有办法只用PeriodicWorkRequestAPI 来做到这一点?
我在Firebase Cloud Functions中使用nodemailer在将数据添加到实时数据库时发送邮件.
码:
const functions = require('firebase-functions');
const nodemailer = require('nodemailer');
const gmailEmail = 'myemail.in@gmail.com';
const gmailPassword = 'mypassword';
const mailTransport = nodemailer.createTransport({
service: 'gmail',
auth: {
user: gmailEmail,
password: gmailPassword
}
});
const APP_NAME = 'ABC In'
exports.salonCreatedAccount = functions.database.instance('abc-
in').ref('/abc/{def}').onCreate(event => {
const snapshot = event.data;
const val = snapshot.val()
console.log(val);
const email = val.email;
const displayname = val.name;
return sendconfirmationEmail(email, displayname);
});
function sendconfirmationEmail(email, displayName){
const mailOptions = {
from: `${APP_NAME} <abc.in@gmail.com>`,
to: email
};
mailOptions.subject …Run Code Online (Sandbox Code Playgroud) node.js firebase nodemailer firebase-realtime-database google-cloud-functions
我正在使用 DiffUtil 实现在滚动时向 RecyclerView 添加新数据。
这是用于在需要时更新项目的代码。
final DiffUtilsCallback<Movie> diffUtilsCallback = new DiffUtilsCallback<>(this.movies, movies);
final DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(diffUtilsCallback);
this.movies.clear();
this.movies.addAll(movies);
diffResult.dispatchUpdatesTo(this);
Run Code Online (Sandbox Code Playgroud)
每次添加新项目时, RecyclerView 都会滚动到顶部项目。如何确保在添加新项目时不会发生滚动。
我已经覆盖了对象的 equals 方法,以便它将对象与 ID 进行比较。
@Override
public boolean equals(Object obj) {
if (!(obj instanceof Movie)) return false;
Movie movie = (Movie) obj;
return this.id == movie.id;
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中使用Dagger2来提供依赖项.我构建应用程序时出现以下错误.
e: /Users/sriramr/Desktop/android/Movie/MovieInfo/app/build/generated/source/kapt/debug/in/sriram/movieinfo/di/ActivityBuilder_BindMoviesListActivity.java:22: error: in.sriram.movieinfo.di.ActivityBuilder_BindMoviesListActivity.MoviesListActivitySubcomponent (unscoped) may not reference scoped bindings:
@Subcomponent(modules = MoviesListActivityModule.class)
^
@Provides @Singleton in.sriram.movieinfo.network.TmdbService in.sriram.movieinfo.di.MoviesListActivityModule.getTmdbService(retrofit2.Retrofit)
@Provides @Singleton retrofit2.Retrofit in.sriram.movieinfo.di.NetworkModule.getRetrofit(okhttp3.OkHttpClient, retrofit2.converter.gson.GsonConverterFactory, retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory)
@Provides @Singleton okhttp3.OkHttpClient in.sriram.movieinfo.di.NetworkModule.getOkHttpClient(okhttp3.logging.HttpLoggingInterceptor, okhttp3.Cache)
@Provides @Singleton okhttp3.logging.HttpLoggingInterceptor in.sriram.movieinfo.di.NetworkModule.getHttpLoggingInterceptor()
@Provides @Singleton okhttp3.Cache in.sriram.movieinfo.di.NetworkModule.getCacheFile(@Named("application-context") android.content.Context)
@Provides @Singleton retrofit2.converter.gson.GsonConverterFactory in.sriram.movieinfo.di.NetworkModule.getGsonConverterFactory()
@Provides @Singleton retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory in.sriram.movieinfo.di.NetworkModule.getRxJavaFactory()
@Provides @Singleton in.sriram.movieinfo.cache.AppDatabase in.sriram.movieinfo.di.ContextModule.getAppDatabase(@Named("application-context") android.content.Context)
@Provides @Singleton com.squareup.picasso.Picasso in.sriram.movieinfo.di.MoviesListActivityModule.getPicasso(@Named("application-context") android.content.Context)
Run Code Online (Sandbox Code Playgroud)
这是我的 ContextModule
@Module
public class ContextModule {
@Provides
@Named("application-context")
Context getContext(Application app) {
return app;
}
@Provides
@Singleton
AppDatabase getAppDatabase(@Named("application-context") Context context) { …Run Code Online (Sandbox Code Playgroud) 所以我有一个 Worker,它必须从预定的第二天开始运行。所以如果工作在今天晚上 8 点被激活,那么我需要在第二天上午 9 点执行工作。所以我用OneTimeWorkRequest用setInitialDelay()。
这是代码
val currentTime = System.currentTimeMillis()
// calculate the timestamp for next dat 9AM
val calendar = Calendar.getInstance()
calendar.set(Calendar.HOUR_OF_DAY, 9)
calendar.set(Calendar.MINUTE, 0)
calendar.set(Calendar.SECOND, 0)
// next day
calendar.add(Calendar.DAY_OF_MONTH, 1)
val tomorrowTime = calendar.timeInMillis
val timeDiffBetweenNowAndTomorrow = tomorrowTime - currentTime
Timber.i("Tomorrow date is ${calendar.timeInMillis}")
Timber.i("Difference between now and tomorrow ${timeDiffBetweenNowAndTomorrow}")
val randomWorkRequest = OneTimeWorkRequestBuilder<RandomWallpaperWorker>()
.setInitialDelay(timeDiffBetweenNowAndTomorrow, TimeUnit.MILLISECONDS)
.build()
WorkManager.getInstance().enqueue(randomWorkRequest)
Run Code Online (Sandbox Code Playgroud)
但是我查了一下,第二天醒来的时候工作没有执行。为什么不安排呢?我计算第二天的时间戳的方式有问题吗?
我正在尝试使用 redux 制作一个 nextjs 应用程序,并且正在设置基本框架。其内容如下。
服务器.js
const express = require("express");
const nextjs = require("next");
const { ROUTES, ROUTE_PATHS } = require("./utils/constants");
const dev = process.env.NODE_ENV !== "production";
const PORT = process.env.PORT || 3001;
const app = nextjs({ dev });
const handle = app.getRequestHandler();
app
.prepare()
.then(() => {
const server = express();
server.get(ROUTES.HOME_ROUTE, (req, res) => {
app.render(req, res, ROUTE_PATHS.HOME_ROUTE_PATH, {});
});
server.get("*", (req, res) => handle(req, res));
server.listen(PORT, err => {
if (err) throw err;
console.log(`> Ready on http://localhost:${PORT}/`); …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用打字稿路径功能,以便不再需要使用相对导入。
这是我的tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"outDir": "./dist",
"rootDir": ".",
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"resolveJsonModule": true,
"baseUrl": ".",
"allowJs": true,
"paths": {
"*": ["node_modules/*", "src/*"],
"@config/*": ["src/config/*"],
"@controllers/*": ["src/controllers/*"],
"@middlewares/*": ["src/middlewares/*"],
"@models/*": ["src/models/*"],
"@routes/*": ["src/routes/*"],
"@types/*": ["src/types/*"],
"@utils/*": ["src/utils/*"]
}
},
"include": ["src/**/*"],
"exclude": ["node_modules", "firebase-config.json", "webpack.config.js"]
}
Run Code Online (Sandbox Code Playgroud)
这是我的package.json
{
"name": "express-ts-boilerplate",
"version": "0.1.0",
"description": "Express Typescript Boilerplate",
"main": "src/server.js",
"author": "Sriram R",
"scripts": {
"start": "NODE_ENV=production node dist/src/app.js",
"dev": "nodemon src/app.ts",
"build": …Run Code Online (Sandbox Code Playgroud) 我正在创建一个新的 CLI 项目,我想在其中使用 Github API 创建新的存储库。在谷歌搜索时,我发现 Github 已弃用授权 API,转而支持 Web 授权流程。我可以看到,也许我们应该在 CLI 应用程序中使用本地重定向 URL,但我不明白如何开始使用它。基本上我需要授权用户(最好使用 Web Flow)从我的 CLI 使用他们的 API。
任何帮助表示赞赏。谢谢。
我正在制作一个具有firebase auth功能的应用程序,用于登录和注册.当我搜索时,我遇到了看起来不错的FireBase UI.当我看到auth文档时,create user方法只接受电子邮件ID和密码,但Firebase UI也获取了用户的名字和姓氏.输入的名称有什么作用?它是存储在auth或数据库中的某个位置还是仅用于展示?如果我实施自己的用户界面进行注册,我可以添加更多详细信息而不仅仅是电子邮件ID和密码吗?
android ×5
firebase ×2
node.js ×2
c ×1
dagger-2 ×1
firebaseui ×1
github-api ×1
kotlin ×1
next.js ×1
nodemailer ×1
nodemon ×1
reactjs ×1
recursion ×1
redux ×1
ts-node ×1
typescript ×1