谁能给我解释一下 Dart 中注释的使用吗?
在文档中,我找到了这个例子:
library todo;
class todo {
final String who;
final String what;
const todo(this.who, this.what);
}
Run Code Online (Sandbox Code Playgroud)
其次是
import 'todo.dart';
@todo('seth', 'make this do something')
void doSomething() {
print('do something');
}
Run Code Online (Sandbox Code Playgroud)
那么,我应该在 main() 中编写什么来执行 doSomething() 函数呢?
谢谢
在尝试实现flutter-firebase 时,ListView.builder未能显示!
请注意,当我尝试在没有ListView.builder它的情况下显示第一个元素时,它工作正常,即错误仅与此代码块相关:
return ListView.builder(
itemCount: snapshot.data.documents.length,
padding: const EdgeInsets.only(top: 10.0),
itemExtent: 25.0,
itemBuilder: (context, index) {
DocumentSnapshot ds = snapshot.data.documents[index];
return Text(" ${ds['name']} ${ds['vote']}");
});
Run Code Online (Sandbox Code Playgroud)
我的完整代码是:
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
void main() => runApp(MyApp(
textInput: Text("Text Widget"),
));
class MyApp extends StatefulWidget {
final Widget textInput;
MyApp({this.textInput});
@override
State<StatefulWidget> createState() => MyAppState();
}
class MyAppState extends State<MyApp> {
bool checkBoxValue = false;
@override
Widget build(BuildContext ctxt) {
return new MaterialApp(
home: SafeArea(
child: …Run Code Online (Sandbox Code Playgroud) 我想创建一个不可变的 Postgres 数据库,用户可以在其中插入和选择(写入和读取)数据,但无法更新或删除数据。
我知道FOR UPDATE锁,但不知道如何使用它。
举例来说,我有下表,如何使其不可变(或者,如果我理解正确,如何FOR UPDATE永久使用锁)
CREATE TABLE account(
user_id serial PRIMARY KEY,
username VARCHAR (50) UNIQUE NOT NULL,
password VARCHAR (50) NOT NULL,
email VARCHAR (355) UNIQUE NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
);
Run Code Online (Sandbox Code Playgroud) 我的Android应用程序的目标是扫描条形码/ QR码,并将其传递给在webView元素处加载的HTML文件。
该应用程序只有一个布局,其中包含一个按钮和webview元素。单击按钮后,应用程序将打开条形/ QR扫描器,并将结果返回到活动中,我需要将此结果传递到我的HTML文件中以进行进一步处理。
如本教程所述,MainActivity正常工作,并在此处返回结果:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanningResult != null) {
String scanContent = scanningResult.getContents();
String scanFormat = scanningResult.getFormatName();
formatTxt.setText("FORMAT: " + scanFormat);
contentTxt.setText("CONTENT: " + scanContent);
/*** I NEED to SEND the 'scanContent' to the my HTML file loaded at the WebView element ***/
}
else{
Toast toast = Toast.makeText(getApplicationContext(),
"No scan data received!", Toast.LENGTH_SHORT);
toast.show();
}
}
Run Code Online (Sandbox Code Playgroud)
我试图用这个和这个得到一个HTML文件作为输出,但得到error 500
我的应用程序的目标是基于api请求,服务器将生成请求的输出作为html文件,并将其发送到用户请求.
使用的代码是:
using Microsoft.AspNetCore.Mvc; // for Controller, [Route], [HttpPost], [FromBody], JsonResult and Json
using System.IO; // for MemoryStream
using System.Net.Http; // for HttpResponseMessage
using System.Net; // for HttpStatusCode
using System.Net.Http.Headers; // for MediaTypeHeaderValue
namespace server{
[Route("api/[controller]")]
public class FileController : Controller{
[HttpGet]
public HttpResponseMessage Get()
{
string r = @"
Hello There
";
var stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(r);
writer.Flush();
stream.Position = 0;
// processing the stream.
byte[] …Run Code Online (Sandbox Code Playgroud) 我正在尝试increment通过使用Dart API 中的Streams而不使用scoped_model或rxdart来替换flutter 应用程序代码。
StreamProvider.dart:
import 'package:flutter/widgets.dart';
import 'businessLogic.dart';
import 'dart:async';
class Something {
final _additionalContrllerr = StreamController<int>();
Sink<int> get addition => _additionalContrllerr.sink;
Stream<int> get itemCount => _additionalContrllerr.stream;
}
class StreemProvider extends InheritedWidget {
final Something myBloc; // Business Logic Component
StreemProvider({
Key key,
@required this.myBloc,
Widget child,
}) : super(key: key, child: child);
@override
bool updateShouldNotify(InheritedWidget oldWidget) => true;
static Something of(BuildContext context) =>
(context.inheritFromWidgetOfExactType(StreemProvider) …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 kotlin DSL 测试 gradle 5。
我创建了一个库,并将其构建如下:
Hasans-Air:blogiclib h_ajsf$ gradle init --type=kotlin-library
Starting a Gradle Daemon, 1 busy Daemon could not be reused, use --status for details
Select build script DSL:
1: groovy
2: kotlin
Enter selection (default: kotlin) [1..2] 2
Project name (default: blogiclib):
Source package (default: blogiclib):
**BUILD SUCCESSFUL** in 16s
2 actionable tasks: 2 executed
Hasans-Air:blogiclib h_ajsf$ ls
build.gradle.kts gradlew settings.gradle.kts
gradle gradlew.bat src
Hasans-Air:blogiclib h_ajsf$ code .
Hasans-Air:blogiclib h_ajsf$ gradle build
Run Code Online (Sandbox Code Playgroud)
然后我得到了生成的输出文件: build\libs\blogiclib.jar
Library.kt生成的文件是:
package …Run Code Online (Sandbox Code Playgroud) 我开始使用ws,我想将Handler特征实现拆分为多个文件。
所以我把这个写在一个文件中on_open.rs:
impl Handler for Client {
fn on_open(&mut self, _: Handshake) -> Result<()> {
println!("Socket opened");
Ok(())
}
}
Run Code Online (Sandbox Code Playgroud)
这在另一个文件中on_message.rs:
impl Handler for Client {
fn on_message(&mut self, msg: Message) -> Result<()> {
println!("Server got message '{}'. ", msg);
Ok(())
}
}
Run Code Online (Sandbox Code Playgroud)
编译时我收到以下错误:
error[E0119]: conflicting implementations of trait `ws::handler::Handler` for type `models::client::Client`:
--> src\sockets\on_message.rs:9:1
|
9 | impl Handler for Client {
| ^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `models::client::Client`
|
::: src\sockets\on_open.rs:8:1 …Run Code Online (Sandbox Code Playgroud) 我有以下代码,可以在移动浏览器中顺利打开,并为我提供使用相机拍照或从图库上传照片的选项:
<input type="file" accept="image/*;capture=camera"/>
Run Code Online (Sandbox Code Playgroud)
我在 加载相同的内容WebView,并进行如下设置:
webView.webChromeClient = object : WebChromeClient() {
override fun onShowFileChooser(
webView: WebView,
filePathCallback: ValueCallback<Array<Uri>>,
fileChooserParams: FileChooserParams
): Boolean {
var takePictureIntent: Intent? = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val contentSelectionIntent = Intent(Intent.ACTION_GET_CONTENT)
contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE)
contentSelectionIntent.type = "image/*"
if (ContextCompat.checkSelfPermission(
ctx,
Manifest.permission.CAMERA
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
activity,
arrayOf(Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE),
0
)
}
val intentArray: Array<Intent?> = takePictureIntent?.let { arrayOf(it) } ?: arrayOfNulls(0)
val chooserIntent = Intent(Intent.ACTION_CHOOSER)
chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent)
chooserIntent.putExtra(Intent.EXTRA_TITLE, "Image Chooser")
chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray)
startActivity(chooserIntent)
filePathCallback?.onReceiveValue(null)
return true …Run Code Online (Sandbox Code Playgroud) 我读过这篇文章,但它与我的情况不同,我有以下代码:
package main
import (
"bytes"
"fmt"
"reflect"
"strconv"
"strings"
)
type User struct {
Name string `name`
Age int64 `age`
}
func main() {
var u User = User{"bob", 10}
res, err := JSONEncode(u)
if err != nil {
panic(err)
}
fmt.Println(string(res))
}
func JSONEncode(v interface{}) ([]byte, error) {
refObjVal := reflect.ValueOf(v)
refObjTyp := reflect.TypeOf(v)
buf := bytes.Buffer{}
if refObjVal.Kind() != reflect.Struct {
return buf.Bytes(), fmt.Errorf(
"val of kind %s is not supported",
refObjVal.Kind(),
)
}
buf.WriteString("{") …Run Code Online (Sandbox Code Playgroud)