Я взглянул на Движение, которое выглядит довольно многообещающим. Я пытаюсь выяснить, как получить размер структуры движения, например, что-то как
type Coord3d struct {
X, Y, Z int64
}
Конечно, я знаю, что это - 24 байта, но я хотел бы знать это программно..
У Вас есть какие-либо идеи, как сделать это?
import unsafe "unsafe"
/* Structure describing an inotify event. */
type INotifyInfo struct {
Wd int32 // Watch descriptor
Mask uint32 // Watch mask
Cookie uint32 // Cookie to synchronize two events
Len uint32 // Length (including NULs) of name
}
func doSomething() {
var info INotifyInfo
const infoSize = unsafe.Sizeof(info)
...
}
Примечание: OP ошибается. Unsafe.sizeof возвращается 24 на примере CORD3D struct. Смотрите комментарий ниже.
for (Car car : carsList) { // carsList is the object of List<Car>
System.out.println(car);
}
Примечание. Приведенное выше отобразится значимое сообщение только при переоценке метода TOSTRING () класса автомобиля.
E.G
public class Car {
private String carName;
....
....
public String toString() {
return carName;
}
}
Метод TOSTRING () должен быть переопределен для возврата значимой информации о объекте в форме строки.
В вашем случае, я думаю, что значимая информация будет все детали автомобиля. Таким образом, метод переопределения TOSTRING () является лучшим подходом вместо использования GetCarkAme () или аналогичных методов.
-121--3030975-Двоичный. Тетальсизм также является вариантом, но отмечают, что есть небольшая разница в поведении между этим и unsafe.sizeof: двоичный .totalsize включает размер содержимого ломтиков, в то время как небезопасно. Возвращает размер дескриптора верхнего уровня. Вот пример того, как использовать итоги.
package main
import (
"encoding/binary"
"fmt"
"reflect"
)
type T struct {
a uint32
b int8
}
func main() {
var t T
r := reflect.ValueOf(t)
s := binary.TotalSize(r)
fmt.Println(s)
}
Для полноты: Entholed имеет распределение Python, которое включает в себя Scipy; Тем не менее, это не бесплатно. Будьте: я никогда не использовал это.
Обновление: этот ответ давно забыл до тех пор, пока экспторы не верну мне обратно. В это время, я буду вторым эндолиты-х предположение из Анаконда , который является бесплатным.
-121--920358- см. В бинарном . Специально метод
Это может быть изменено, но в последний раз я обнаружил нерешенную ошибку компилятора (bug260.go), связанную с выравниванием структуры. Конечным результатом является то, что упаковка конструкции может не дать ожидаемых результатов. Это было для компилятора 6g версии 5383 выпуска 2010-04-27. Возможно, это не повлияет на ваши результаты, но об этом следует знать.
ОБНОВЛЕНИЕ: Единственная ошибка, оставшаяся в наборе тестов go, - это bug260.go, упомянутая выше, начиная с выпуска 2010-05-04.
Хотей