我试图在Kotlin Koans解决任务#6(DataClass).当我在代码中使用普通类时,测试用例失败了.
这是我的数据类代码:
data class Person(val name: String, val age: Int)
fun task6(): List<Person> {
return listOf(Person("Alice", 29), Person("Bob", 31))
}
Run Code Online (Sandbox Code Playgroud)
这是数据类的结果:
[Person(name=Alice, age=29), Person(name=Bob, age=31)]
Run Code Online (Sandbox Code Playgroud)
这是我正常类的代码:
class Person(val name: String, val age: Int)
fun task6(): List<Person> {
return listOf(Person("Alice", 29), Person("Bob", 31))
}
Run Code Online (Sandbox Code Playgroud)
这是正常类的结果:
[i_introduction._6_Data_Classes.Person@4f47d241, i_introduction._6_Data_Classes.Person@4c3e4790]
Run Code Online (Sandbox Code Playgroud)
这是否意味着Kotlin中的普通类和数据类之间存在差异.如果是,那是什么?
更新:
谢谢@Mallow,你是对的.这样可行:
class Person(val name: String, val age: Int) {
override fun toString(): String {
return "Person(name=$name, age=$age)"
}
}
fun task6(): List<Person> {
return listOf(Person("Alice", 29), Person("Bob", 31)) …Run Code Online (Sandbox Code Playgroud) 这是关于JavaFX的.当我想在Scene Builder中注入fx:id时,我收到此警告:
在FXML Controller类中找不到id为'something'的可注入字段.
我想忽略它,并创建了一个函数,但它也没有用.我创建了mainController类并将其添加到我的FXML文件中.这是我的代码...
mainController.java
package main;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar;
import javafx.scene.control.Slider;
public class mainController implements Initializable {
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
// TODO Auto-generated method stub
}
@FXML
private ProgressBar pb;
@FXML
private Slider sl;
@FXML
private Label label;
public void changed(ActionEvent event){
}
}
Run Code Online (Sandbox Code Playgroud)
Main.java
package main;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import …Run Code Online (Sandbox Code Playgroud) 我应该规范化一个数组.我读过有关规范化的内容并遇到一个公式:
我为它写了以下函数:
def normalize_list(list):
max_value = max(list)
min_value = min(list)
for i in range(0, len(list)):
list[i] = (list[i] - min_value) / (max_value - min_value)
Run Code Online (Sandbox Code Playgroud)
这应该规范化元素数组.
然后我遇到了这个:https://stackoverflow.com/a/21031303/6209399 这说你可以通过简单地执行以下操作来规范化数组:
def normalize_list_numpy(list):
normalized_list = list / np.linalg.norm(list)
return normalized_list
Run Code Online (Sandbox Code Playgroud)
如果我test_array = [1, 2, 3, 4, 5, 6, 7, 8, 9]用我自己的函数和numpy方法规范化这个测试数组,我得到这些答案:
My own function: [0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0]
The numpy way: [0.059234887775909233, 0.11846977555181847, 0.17770466332772769, 0.23693955110363693, 0.29617443887954614, 0.35540932665545538, 0.41464421443136462, 0.47387910220727386, 0.5331139899831830
Run Code Online (Sandbox Code Playgroud)
为什么函数给出不同的答案?还有其他方法来规范化数据数组吗?怎么numpy.linalg.norm(list)办?我有什么问题?